我在docker中安装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/
但我不能用函数
选择加载文件('/home/marina/some path/some path more/image.jpg')。
如何配置卷以从docker访问我的文件?
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=''
2条答案
按热度按时间ubby3x7f1#
尝试Map到/var/lib/mysql。不建议使用mapping/var/lib。
将image.jpg复制到
/home/marina/some-path
在你的容器主机上。这将Map下的文件/var/lib/mysql
在容器内。猛击容器
docker exec -it <container-id> bash
跑SELECT LOAD_FILE('/var/lib/mysql/image.jpg')
j0pj023g2#
首先,我会避免使用
/var/lib
作为容器路径,因为此路径通常存在,并且您可能会损坏容器中的数据。使用类似于:第二,我猜您混淆了主机路径和容器路径。在给出的例子中,在容器内部应该使用这样的东西
SELECT LOAD_FILE('/mydata/image.jpg')