docker commit コマンドはコンテナの変更履歴を保存できる
docker commit
コマンドはDockerコンテナで発生した履歴をもとに新しいイメージを作り出すことができます。
使い方を覚えて変更履歴をコミットできるようにしましょう。
Docker入門 関連記事
コンテナ内部のコマンドによる変更を保存する
コンテナ内部でのコマンド操作によって、コンテナの状態が変化したとき、その変更を保存しておきたいときもあります。
exit
やstop
によってコンテナを止めた後でもコンテナを操作した履歴を消したくないとき、commit
コマンドが役に立ちます。
解決策:コマンドを使用
docker commit
コマンドはコンテナ内部の変更を新しいDockerイメージとして保存しておくことができます。
docker commitコマンドは、実行中のDockerコンテナから新しいイメージを作成するために使用されます。以下がその基本的な構文です。
docker commit [オプション] <コンテナID> <新しいイメージ名>
コンテナIDはコンテナ名でも代用可能です。
具体例:ubuntuのpackegeのアップデートをイメージとして保存する
ubuntuコンテナを起動してbashでログインし、packeageのアップデートをします。 そしてこのアップデートを行ったコンテナをあなたは新しいイメージとして保存しておきたいとします。
docker run -it ubuntu:14.04 /bin/bash
コンテナ内部では次のようにapt-get update
でパッケージをアップデートします。
root@69079aaaaab1:/# apt-get update
この状態でexit
コマンドを入力したとき、コンテナは停止してしまいます。
ですがこのコンテナをdocker rm
コマンドで削除しない限り、コンテナ内部で行った作業は記憶されたままです。
docker rm
コマンドでコンテナを削除してしまう前に、ubuntu:update
イメージとして保存しましょう。
docker commit 69079aaaaab1 ubuntu:update
こうすることであなたはコンテナを削除することができますし、削除されたとしてもubuntu:update
イメージから再度同じコンテナを作り出すことが可能です。