はじめに
Dockerイメージとコンテナーを操作する場合、基本的な機能の1つは、Dockerイメージへの変更をコミットすることです。変更をコミットするときは、基本的に、ベースイメージレイヤーを変更する追加のレイヤーを使用して新しいイメージを作成します。
このチュートリアルでは、簡単な例に従って、Dockerイメージに変更をコミットする方法を学習します。

前提条件
- コマンドライン/ターミナルウィンドウへのアクセス( Ctrl + Alt + T )
- rootのユーザーアカウント またはsudo 特権
- Dockerのインストールと構成
Dockerイメージへの変更をコミットするための手順
ステップ1:Dockerイメージをプルする
変更をコミットする方法を説明するには、最初に操作するイメージが必要です。この記事では、Docker用の最新のUbuntuイメージを使用します。次のコマンドを使用して、Dockerのライブラリからイメージをダウンロードします。
sudo docker pull ubuntu

利用可能なイメージを再確認すると、Ubuntuイメージが表示されます:
sudo docker images

画像IDをコピーします 後で使用するため。
ステップ2:コンテナをデプロイする
画像IDを追加します 画像に基づいてコンテナを作成するコマンドへ:
sudo docker run -it cf0f3ca922e0 bin/bash
–it
オプションは、インタラクティブで起動するようにコンテナに指示します モードにして端末入力を有効にします インターフェース。コマンドを実行すると、新しいコンテナが起動し、その内部で作業するための新しいシェルプロンプトに移動します。

ステップ3:コンテナを変更する
コンテナに入ったので、画像を変更できます。次の例では、ネットワーク検出とセキュリティ監査用のNmapソフトウェアを追加します。
apt-get install nmap
このコマンドは、Nmapパッケージをダウンロードし、実行中のコンテナー内にインストールします。

次のコマンドを実行して、インストールを確認できます:
nmap --version
出力には、Nmapバージョン7.60が表示されます。 インストールされ、使用する準備ができています。

新しいコンテナの変更が完了したら、コンテナを終了します:
exit
起動されたコンテナのリストを表示するようにシステムにプロンプトを表示します:
sudo docker ps -a
コンテナIDが必要になります 既存の画像に加えた変更を保存します。出力からID値をコピーします。

ステップ4:画像に変更をコミットする
最後に、次の構文を使用して変更をコミットすることにより、新しいイメージを作成します。
sudo docker commit [CONTAINER_ID] [new_image_name]
したがって、この例では次のようになります。
sudo docker commit deddd39fa163 ubuntu-nmap
deddd39fa163
の場所 はコンテナIDであり、 ubuntu-nmap
新しい画像の名前です。

これで、新しく作成した画像がローカル画像のリストに表示されます。画像リストをもう一度確認することで確認できます:
sudo docker images
