2017-12-18 302 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