Docker | DockerコンテナからDocker Imageを生成しよう | Commitのやり方
- 2022.11.01
- Docker

前回の記事の続きです。
今回はコンテナからDocker Imageを作成してみたいと思います。
設定したいこと
例えば社内配布用のDocker Imageとして、以下のような設定を入れたいとします。
・tmp/scripts内にサンプルスクリプトを配置しておく。
・事前に pythonライブラリ(今回は pandas) をインストールしておく
事前準備
適当にファイルを生成します。
root@7a716fccee2b:/tmp/scripts# touch sample01.py
root@7a716fccee2b:/tmp/scripts# touch sample02.py
root@7a716fccee2b:/tmp/scripts# dir
sample01.py sample02.py
pipで「pandas」をinstallします。
# 初期状態
pip list
>>
Package Version
---------- -------
pip 22.3
setuptools 65.5.0
wheel 0.37.1
#pandasをインストール後
pip list
>>
Package Version
--------------- -------
numpy 1.23.4
pandas 1.5.1
pip 22.3
python-dateutil 2.8.2
pytz 2022.6
setuptools 65.5.0
six 1.16.0
wheel 0.37.1
コンテナからImageを生成する(Commit)
コンテナからDocker Imageを生成する行為を「Commit(コミット)」と呼びます。
今回は上記のPythonコンテナからImageを生成します。
コマンドは以下の通りです。
※ PythonTESTという名前のコンテナを、python_packというImageでコミットします。
docker commit PythonTEST python_pack
Docker DesktopのImagesにも生成されたことを確認しました。

コミットしたImageからコンテナを生成してみる
では、コミットしたImageからコンテナを生成してみましょう。
docker run --name PythonTEST02 -it python_pack
この「コンテナ:PythonTEST02」の中身を見てみます。
docker exec -it PythonTEST02 bash
sample.pyの確認↓
root@85899fbcf260:/tmp/scripts# ls
sample01.py sample02.py
pipの情報↓
pip list
>>
Package Version
--------------- -------
numpy 1.23.4
pandas 1.5.1
pip 22.3
python-dateutil 2.8.2
pytz 2022.6
setuptools 65.5.0
six 1.16.0
wheel 0.37.1
いずれもコミット元である「コンテナ:PythonTEST」の情報が複製されていることが分かります。
今回は以上です!
ではまた!
-
前の記事
Docker | Dockerコンテナを作成しよう(Python) 2022.11.01
-
次の記事
Docker | Docker save と load でコンテナを持ち運びする 2022.11.01