问题描述
我有一个MySQL docker image在Ubuntu VPS的docker容器中运行。我通过以下docker-compose up -d
文件使用docker-composer.yml
命令启动MysqL
version: "3"
services:
MysqL_server:
image: MysqL:8.0.21
restart: always
container_name: MysqL_server
environment:
MysqL_DATABASE: db_name
MysqL_USER: db_username
MysqL_PASSWORD: db_password
MysqL_ROOT_PASSWORD: root_password
volumes:
- MysqL_server_data:/var/lib/MysqL
- /MysqL/files/conf.d:/etc/MysqL/conf.d
问题
如何将卷的数据位置从MysqL_server_data
更改为/MysqL/data
?
此外,如何在/MysqL/files/conf.d
上安装MysqL的配置文件以允许我更新设置?
我试图像这样挂载配置文件
volumes:
- /MysqL/files/conf.d:/etc/MysqL/conf.d
但是这创建了一个目录/MysqL/files/conf.d
,没有配置文件。
解决方法
要移动数据: 使用docker-compose关闭容器,然后在本地文件系统上,将数据从mysql_server_data复制到/ mysql / data。然后更改撰写文件以反映新位置。最后,使用docker-compose up重启容器。
要安装配置文件,请按照MySQL的docker hub文档,如果/my/custom/config-file.cnf是自定义配置文件的路径和名称,则您的卷映射为:
/my/custom:/etc/mysql/conf.d
请注意,将卷映射到容器不会将容器中的数据带到本地,而是将数据带到本地。因此,如果要将文件保存在容器中,则必须首先在本地创建文件。