自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Docker】コンテナをイメージ化する(docker commit)

過去に下記の記事を書いております。
その中でdocker commitについてあまり触れていなかったので、今回はdocker commitに的を絞り記載致します。

www.guri2o1667.work

 

■流れ

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を用意しました。

f:id:guri2o1667:20210603093650p:plain

■2.httpd2.4のコンテナを一つ起動

コンテナを起動します。コンテナ名はweb1としました。

f:id:guri2o1667:20210603093720p:plain

■3.docker cpコマンドにてindex.htmlをコンテナにコピー

/var/tmp/apache2/index.htmlをコンテナ/usr/local/apache2/htdocs/にコピーします。

f:id:guri2o1667:20210603093829p:plain


web1のWebページが開けることを確認します。

f:id:guri2o1667:20210603094038p:plain


次の手順を実行する前に、dockerイメージの一覧を念のため確認しておきます。

f:id:guri2o1667:20210603093905p:plain

■4.docker commitコマンドの実行

docker commitコマンドを実行します。
イメージ名は「custom_web1」としました。

f:id:guri2o1667:20210603094107p:plain

やることは変わらないのですが、
イメージ名にタグ名(1)をつけた状態のコマンドも念のため実行しておきます。

f:id:guri2o1667:20210603094348p:plain

■5.docker commitコマンド後の状況確認

dockerイメージの一覧を確認してみます。
「REPOSITORY」列に新しく「custom_web1」というものが2つ出来上がっています。
一つはタグ無しで作成したもの(=latestが自動付与)、
もう一つはタグありで作成したもの(「TAG」列が「1」)です。

f:id:guri2o1667:20210603094328p:plain

■6.docker historyコマンドによる履歴確認

今回web1というコンテナを基に、docker commitコマンドを利用しdockerイメージを2つ作成しました。

web1はhttpd:2.4というdockerイメージがもとになっております。
httpd:2.4のdockerイメージのhistoryは以下の通りです。

f:id:guri2o1667:20210603094712p:plain

custom_web1のdockerイメージのhistoryは以下の通りです。

f:id:guri2o1667:20210603101703p:plain

差分は以下の通り先頭の1行のみです。(左側がhttpd:2.4 、右側がcustom_web1)

f:id:guri2o1667:20210603101757p:plain

勘違いしそうなところとしては、
custom_web1イメージに「index.htmlをコピーした」というような情報は記録/記載されません。
※詳細には触れませんが、「index.htmlをコピーした」というような更新情報が必要な場合にはDockerfileを利用した方が良いです。

■7.docker commitコマンドで作成したイメージを利用する

custom_web1のイメージを使って、新たに1つコンテナ(web2)を作成します。

f:id:guri2o1667:20210603102147p:plain

webサイトにアクセスできることを確認します。

f:id:guri2o1667:20210603102232p:plain

■8.後始末

web1、web2を削除します。

f:id:guri2o1667:20210603102517p:plain

作成したcustom_web1イメージを削除します。

f:id:guri2o1667:20210603102613p:plain

以上です。