質問: ### 前提・実現したいこと Dockerを用いて、既に作成済みのコンテナからイメージを作成し、同じ内容のコンテナを作成したいです。 作成済みのコンテナにはMySQLをインストール済み。 ### 発生している問題・エラーメッセージ 既存コンテナからイメージの作成を行い、新規にコンテナを作成しましたが 変更した内容が反映されていませんでした。 変更内容は、MySQLにDBを作成し、テーブルを追加したのみ。 変更したコンテナを基にイメージを作成し、そのイメージを基に新たにコンテナを作成しました。 しかしMySQLは入っていますが、作成したDBやテーブルは反映されておらず初期状態のままでした。 Docker初心者の為、ご教授頂けると幸いです。 ### 試したこと ### 補足情報 Docker version 18.09.2
回答: 停止したコンテナからイメージを作成したとのことなので,docker commitコマンドを使われたのだと思います. MySQLのイメージを公式のものを使われているなら,コンテナからイメージを作成した時にデータが入っていないのは正常な挙動です. MySQLのDockerfileを確認してもらうとわかりますが,VOLUMEで/var/lib/mysqlが指定されています. VOLUMEで指定されたディレクトリはイメージに含まれないので,これを外す必要があります. 下記qiitaの記事を参考に試してみてください. postgresの記事ですが,mysqlに読み替えればできるはずです. https://qiita.com/monkeydaichan/items/b5437014b29a01be4b03