実行した後にMySQLドッカー(最新)&を取得しましたこのデータを追加した後にコンテナをコミットしようとしています。&新しいスキーマの&テーブルをこのmysqlドッカー・インスタンスに追加します。 >http://www.servermom.org/pull-docker-images-run-docker-containers/3225/ドッキング・コンテナ/イメージが変更を保存しない
しかし、たとえ複数のバリエーションを試した後、私はするつもり何を達成していないです - 参考のために
私は、このリンクを次のようしています。だから私は何をしている私のコンテナに新しいテーブルとスキーマを追加した後に私は& Dockerのハブにリンクで述べたようにコミットしています。
その後、私は新しいデータをコンテナに追加し、別のタグを使って新しいイメージとしてコミットしたので、最初のプルされたイメージを削除しています。最初に引っ張ったイメージを削除します。 (私がこれをやっているのは、自分のマシンを変更していると言うと、ドッカーが私のコミットされたイメージをプルするときにデータを元の状態に戻すことができるからです)
コミットすればgitのようになります。&プッシュマシンが壊れたので、新しいマシンではgit pullを実行しなければならず、私はすべての損失をせずにすべてを取得します。だから私はドッカーが変更を保存していない理由を理解できません
オプション-1の話私がしている:
2)カスタム実行スクリプト/エントリポイントでコンテナの起動時に画像を拡張し、スキーマの変更コマンドを含めることができ
ここでは、ボリュームに関するドキュメントページです単にdocker pull mysql:latestを使用してmysqlイメージを取得します。それに私は自分のスキーマとデータを追加しました。 – AJm
あなたが[ここ](https://github.com/docker-library/mysql/blob/0590e4efd2b31ec794383f084d419dea9bc752c4/5.7/Dockerfile)(これはあなたが使用しているイメージのDockerfile)に見える場合、68行目には: 'VOLUME/var/lib/mysql'。このディレクトリは、mysqlイメージがそのデータを格納する場所です。したがって、実行中のコンテナに挿入を実行すると、変更されるコンテナ内の唯一のパスは/ var/lib/mysqlになります。これはボリュームなので、その変更はコミットしてもイメージに保存されません。これはドッカーの仕組みの一部です。 – whites11
データの変更をイメージ内に残したい場合は、mysqlがデータを格納するmysql設定ファイル(実際には/ var/lib/mysqlに編集することで元のイメージをカスタマイズする必要があります。 )。このようにして、DBMSの実際のデータは、コミットするとイメージ内で永続的になります。それは今より意味があるのですか? – whites11