2017-12-18 301 views
0

我在使用the official MySQL docker image创建的docker容器中运行MySQL 5.7.20。 MySQL conf文件需要安装在主机Ubuntu系统上。MySQL docker中的MySQL conf文件

目前MySQL的泊坞窗容器使用命令

sudo docker run -d \ 
-p 3306:3306 \ 
-e MYSQL_ROOT_PASSWORD=test \ 
-v /root/test/mysql/var/lib:/var/lib/mysql \ 
-v /root/test/mysql/etc:/etc/mysql \ 
--name test-mysql \ 
mysql:5.7 

开始但是没有conf文件中/root/test/mysql/etc ...连接到泊坞窗容器的bash和发现/etc/mysql是空的!

conf文件位于何处?不应该有一些在/etc/mysql/conf.d//etc/mysql/mysql.conf.d/

回答

1

如果你没有安装任何卷上运行命令:

$ docker run -it mysql ls /etc/mysql 
conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d 

如果/root/test/mysql/etc存在一个空文件夹,你把它安装到/etc/mysql所有/etc/mysql内容将被“取代”与那些在/root/test/mysql/etc

你可以有一个空文件夹/root/test/mysql/etc并执行以下操作:

docker volume create --driver local \ 
    --opt type=none \ 
    --opt device=/root/test/mysql/etc \ 
    --opt o=bind \ 
    mysql_vol 

sudo docker run -d \ 
-p 3306:3306 \ 
-e MYSQL_ROOT_PASSWORD=test \ 
-v /root/test/mysql/var/lib:/var/lib/mysql \ 
-v mysql_vol:/etc/mysql \ 
--name test-mysql \ 
mysql:5.7 
+0

我试着删除'/根/测试/ mysql /下etc'然后使用命令启动泊坞容器声明在问题中。 '/ root/test/mysql/etc'被创建,但它仍然是空的...我做错了什么? – Nyxynyx

+0

也尝试删除'/ root/test/mysql/etc',然后使用相同的命令启动Docker容器,首先不安装'/ etc/mysql'。然后我停下来移除Docker容器并运行包含'-v'参数的命令。 '/ root/test/mysql/etc'现在被创建,但仍然是空的... – Nyxynyx

+0

我的不好。第一个选项不起作用。该目录被创建为空,并挂载到'/ etc/mysql'上,该目录使其为空。唯一的选择是创建卷并挂载指定的卷。这会给你想要的效果。 – yamenk