docker commit コマンドでコンテナの変更履歴を保存する (docker, commit)

docker commit コマンドはコンテナの変更履歴を保存できる

docker commit コマンドはDockerコンテナで発生した履歴をもとに新しいイメージを作り出すことができます。 使い方を覚えて変更履歴をコミットできるようにしましょう。

Docker入門 関連記事

コンテナ内部のコマンドによる変更を保存する

コンテナ内部でのコマンド操作によって、コンテナの状態が変化したとき、その変更を保存しておきたいときもあります。 exitstopによってコンテナを止めた後でもコンテナを操作した履歴を消したくないとき、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イメージから再度同じコンテナを作り出すことが可能です。