Устанавливаю 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=''
Во-первых, я бы не использовал /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
/home/marina/some-path
на вашем контейнере. Это отобразит файл под /var/lib/mysql
внутри контейнера.docker exec -it <container-id> bash
SELECT LOAD_FILE('/var/lib/mysql/image.jpg')
Я не монтирую том для докер-машины. Это проблема.
Прохладный. Инструкция по монтированию папки внутри докер-машины docs.docker.com/machine/reference/mount
Я все равно не могу сесть. Папка внутри докера не содержит файла, который существовал в локальной системе. Я меняю объем / дом / пристань / работа: / дом / пристань / работа