2016-08-22 28 views
0

ドッカーハブからmysqlを取り出し、このコンテナを実行できました。いくつかのデータベースとテーブルを作成した後、変更を永続化するために、このコンテナを新しいイメージにコミットする必要があります。これを行うことで、新しい画像を他のメンバーに発送して、すべてのデータを含むことができることを願っています。私は以下のコマンドを使用します:ドッカーコンテナをコミットしましたが、変更はありません

$ docker ps 
CONTAINER ID  IMAGE          COMMAND     CREATED    STATUS    PORTS     NAMES 
3aca4ff8790d  mysql          "/entrypoint.sh mysql" 6 months ago  Up 2 minutes  0.0.0.0:3306->3306/tcp lonely_liskov 

$docker commit 3aca4ff8790d cooltoo/cooltoo_db:LATEST 

この新しいイメージを実行すると、すべての変更と設定はそこにはありません。すべての変更と設定を使用して、コンテナを新しいイメージに永続化するにはどうすればいいですか?

+0

イメージには、ボリュームとして定義されたデータディレクトリがある可能性があります。 – Henry

答えて

0

ヘンリーが正しくありました。 MySQLコンテナのDockerfileには、/ var/lib/mysqlがボリュームとして設定されています。

ベスト・ベット(そして業界のベスト・プラクティス)は、変更をDockerfile(「FROM mysql」で始まる)に入れることです。 docs

初めてコンテナを起動すると、指定された名前の新しいデータベースが作成され、提供された構成変数で初期化されます。さらに、/docker-entrypoint-initdb.dにある拡張子.sh、.sql、.sql.gzを持つファイルを実行します。ファイルはアルファベット順に実行されます。

、あなたのデータを取るのであれば/スキーマ/何でも、それをmysqldumpをし、

​​

に入れて...そこに、あなたは黄金色にする必要があります。

+0

mysqlドッカーを起動するときにボリュームを指定しませんでした。すべてのデータストレージはどこで見つけることができますか?私のホストに/ var/lib/mysqlディレクトリがないことを確認しました。 –

+0

パスがボリュームとして宣言されると、そのパスへの変更は保持されません。 docs(http://lp7h.qr.ai)から: "ビルドステップで宣言されたボリューム内のデータが変更された場合、その変更は破棄されます。" –

関連する問題