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

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

前回の記事の続きです。

今回はコンテナから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」の情報が複製されていることが分かります。

今回は以上です!

ではまた!