我在docker中安装了MySQL5.6。
我创建docker-compose.ym并设置数据库的属性
t
但是我不能使用功能
选择LOAD_FILE('/ home / marina / some-path / some-path-more / image.jpg')。
如何配置卷以从Docker访问我的文件?
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/
并将音量更改为:
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
答案 0 :(得分:0)
首先,我将避免使用/var/lib
作为容器路径,因为该路径通常存在,并且您可能会损坏容器内的数据。使用类似的东西:
volumes:
- /home/marina/some-path:/mydata
第二,我想您正在混淆主机路径和容器路径。给出示例之后,在容器内,您应该使用类似SELECT LOAD_FILE('/mydata/image.jpg')
答案 1 :(得分:0)
尝试映射到/ 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')