Как настроить доступ к файлу в локальной файловой системе для MySQL, запущенного в контейнере докера

Устанавливаю MySQL5.6 в докере.

Я создаю docker-compose.ym и устанавливаю свойства для db

db:
  container_name: db_mysql
  image: mysql:5.6
  command: --secure-file-priv='/var/lib/'
  environment:
    MYSQL_DATABASE: devdb
    MYSQL_ROOT_PASSWORD: ""
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  ports:
    - "3306:3306"

  volumes:
     - /home/marina/some-path:/var/lib/

но я не могу использовать функцию

ВЫБЕРИТЕ LOAD_FILE ('/ home / marina / some-path / some-path-more / image.jpg').

Как я могу настроить том для доступа к моим файлам из докера?

Need mount my local file system to docker machine
# Create the "default" machine, but then stop it.
docker-machine create --driver virtualbox default
docker-machine stop
# Add a new shared folder through virtualbox
VBoxManage sharedfolder add default --name "userhome" --hostpath 
"/home/marina/"
# Turn the machine back on, and mount the share
docker-machine start
docker-machine ssh default 'sudo mkdir --parents /home/marina'
docker-machine ssh default 'sudo mount -t vboxsf userhome /home/marina'
# Check it works
docker-machine ssh default 'ls /home/marina'
# Start it up
docker-compose up

и измените громкость на:

volumes:
    - /home/marina/workprojectdir:/home/marina/workprojectdir

и установите команду:

command: --secure-file-priv=''
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
1 017
2

Ответы 2

Во-первых, я бы не использовал /var/lib в качестве пути к контейнеру, потому что этот путь обычно существует и вы можете повредить данные внутри контейнера. Используйте что-то вроде:

volumes:
  - /home/marina/some-path:/mydata

Во-вторых, я думаю, вы путаете путь к хосту и путь к контейнеру. В вашем примере внутри контейнера вы должны использовать что-то вроде этого SELECT LOAD_FILE('/mydata/image.jpg')

Попробуйте вместо этого сопоставить / var / lib / mysql. Отображение / var / lib не рекомендуется.

db:
  container_name: db_mysql
  image: mysql:5.6
  command: --secure-file-priv='/var/lib/mysql'
  environment:
    MYSQL_DATABASE: devdb
    MYSQL_ROOT_PASSWORD: ""
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  ports:
    - "3306:3306"

  volumes:
     - /home/marina/some-path:/var/lib/mysql
  • Скопируйте image.jpg в /home/marina/some-path на вашем контейнере. Это отобразит файл под /var/lib/mysql внутри контейнера.
  • Ударьте в контейнер docker exec -it <container-id> bash
  • Бегать SELECT LOAD_FILE('/var/lib/mysql/image.jpg')

Я все равно не могу сесть. Папка внутри докера не содержит файла, который существовал в локальной системе. Я меняю объем / дом / пристань / работа: / дом / пристань / работа

martinixs 17.12.2018 17:55

Я не монтирую том для докер-машины. Это проблема.

martinixs 17.12.2018 19:11

Прохладный. Инструкция по монтированию папки внутри докер-машины docs.docker.com/machine/reference/mount

hellosri 18.12.2018 21:03

Другие вопросы по теме