過去に下記の記事を書いております。
その中でdocker commitについてあまり触れていなかったので、今回はdocker commitに的を絞り記載致します。
- ■流れ
- ■1.Dockerホスト内に適当にindex.htmlを作成
- ■2.httpd2.4のコンテナを一つ起動
- ■3.docker cpコマンドにてindex.htmlをコンテナにコピー
- ■4.docker commitコマンドの実行
- ■5.docker commitコマンド後の状況確認
- ■6.docker historyコマンドによる履歴確認
- ■7.docker commitコマンドで作成したイメージを利用する
- ■8.後始末
■流れ
1.Dockerホスト内に適当にindex.htmlを作成
2.httpd2.4のコンテナを一つ起動
3.docker cpコマンドにてindex.htmlをコンテナにコピー
4.docker commitコマンドの実行
5.docker commitコマンド後の状況確認
6.docker historyコマンドによる履歴確認
7.docker commitコマンドで作成したイメージを利用する
8.後始末
■1.Dockerホスト内に適当にindex.htmlを作成
以下の通り、/var/tmp/apache2/index.htmlを用意しました。
■2.httpd2.4のコンテナを一つ起動
コンテナを起動します。コンテナ名はweb1としました。
■3.docker cpコマンドにてindex.htmlをコンテナにコピー
/var/tmp/apache2/index.htmlをコンテナ/usr/local/apache2/htdocs/にコピーします。
web1のWebページが開けることを確認します。
次の手順を実行する前に、dockerイメージの一覧を念のため確認しておきます。
■4.docker commitコマンドの実行
docker commitコマンドを実行します。
イメージ名は「custom_web1」としました。
やることは変わらないのですが、
イメージ名にタグ名(1)をつけた状態のコマンドも念のため実行しておきます。
■5.docker commitコマンド後の状況確認
dockerイメージの一覧を確認してみます。
「REPOSITORY」列に新しく「custom_web1」というものが2つ出来上がっています。
一つはタグ無しで作成したもの(=latestが自動付与)、
もう一つはタグありで作成したもの(「TAG」列が「1」)です。
■6.docker historyコマンドによる履歴確認
今回web1というコンテナを基に、docker commitコマンドを利用しdockerイメージを2つ作成しました。
web1はhttpd:2.4というdockerイメージがもとになっております。
httpd:2.4のdockerイメージのhistoryは以下の通りです。
custom_web1のdockerイメージのhistoryは以下の通りです。
差分は以下の通り先頭の1行のみです。(左側がhttpd:2.4 、右側がcustom_web1)
勘違いしそうなところとしては、
custom_web1イメージに「index.htmlをコピーした」というような情報は記録/記載されません。
※詳細には触れませんが、「index.htmlをコピーした」というような更新情報が必要な場合にはDockerfileを利用した方が良いです。
■7.docker commitコマンドで作成したイメージを利用する
custom_web1のイメージを使って、新たに1つコンテナ(web2)を作成します。
webサイトにアクセスできることを確認します。
■8.後始末
web1、web2を削除します。
作成したcustom_web1イメージを削除します。
以上です。