2017-12-18 20 views
0

the official MySQL docker imageを使用して作成したドッカーコンテナでMySQL 5.7.20を実行しています。 MySQLのconfファイルは、ホストのUbuntuシステムにマウントする必要があります。 MySQLドッカーのMySQL confファイル

は現在、MySQLのドッキングウィンドウコンテナは、しかし何のconfファイルがドッキングウィンドウコンテナのバッシュに接続... /root/test/mysql/etcではありませんコマンド
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 

を使用して開始し、 /etc/mysqlが空であることが判明しました!

どこにファイルがありますか? /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のすべてのコンテンツが/root/test/mysql/etcのものと「置き換え」されます/etc/mysqlにそれをマウントした場合。

あなたは空の/root/test/mysql/etcのフォルダを持っているし、次の操作を行うことができます:私は `/ルート/テスト/ 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

を質問に。 '/ root/test/mysql/etc'が作成されますが、まだ空です...何か間違っていますか? – Nyxynyx

+0

また、 '/ root/test/mysql/etc'を削除してから、'/etc/mysql'をマウントせずに、同じコマンドを使ってDockerコンテナを起動しました。次に、Dockerコンテナを停止して削除し、 '-v'引数の両方を含むコマンドを実行しました。 '/ root/test/mysql/etc'は今作成されますが、まだ空です... – Nyxynyx

+0

私の悪いです。最初のオプションは機能しません。ディレクトリは空になっていて、 '/ etc/mysql'にマウントされて空になります。唯一の選択肢は、ボリュームを作成し、そのボリュームをマウントすることです。これはあなたに望ましい効果を与えます。 – yamenk

関連する問題