コンテナを新しいイメージにコミットする
このステップでは、実行中のコンテナ内で行った変更を新しい Docker イメージにコミットする方法を学びます。これは、ソフトウェアのインストールやファイルの設定などの変更を行った後に、コンテナの状態を保存したい場合に便利です。
まず、簡単な Ubuntu コンテナを実行しましょう。ubuntu
イメージを使用します。コンテナ内で変更を加えるため、擬似 TTY を使用して対話的に実行する必要があります。
docker run -it ubuntu
これで、Ubuntu コンテナのシェル内にいるはずです。curl
パッケージをインストールするなど、簡単な変更を加えましょう。
apt-get update
apt-get install -y curl
インストールが完了したら、exit
と入力してコンテナのシェルを終了します。
exit
コンテナを終了したので、行った変更(curl
のインストール)はその特定のコンテナインスタンスにまだ残っています。これらの変更を新しいイメージとして保存するには、コンテナをコミットする必要があります。
まず、終了したばかりのコンテナのコンテナ ID を見つけます。docker ps -a
コマンドを使用して、終了したコンテナを含むすべてのコンテナをリストアップできます。
docker ps -a
ubuntu
イメージから作成されたコンテナを探し、その CONTAINER ID
をメモします。
次に、docker commit
コマンドを使用して、このコンテナから新しいイメージを作成します。基本的な構文は docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
です。コンテナをコミットし、新しいイメージに名前とタグを付けます。<CONTAINER_ID>
を実際に見つけた ID に置き換えます。
docker commit < CONTAINER_ID > my-ubuntu-with-curl:v1
このコマンドは、v1
タグ付きの my-ubuntu-with-curl
という名前の新しいイメージを作成します。ローカルのイメージをリストアップすることで、新しいイメージが作成されたことを確認できます。
docker images
イメージのリストに my-ubuntu-with-curl
が表示されるはずです。この新しいイメージには、コンテナ内でインストールした curl
パッケージが含まれています。