2026年8月15日
2026年8月15日
Dockerのcommitでコンテナからイメージを作成する方法
はじめに
Dockerはコンテナ技術を用いたアプリケーションのデプロイと管理を容易にするツールです。しかし、時折コンテナ内で必要不可欠な変更が生じる場合があります。これらの変更を永続化し、新しいイメージを作成することは重要な作業です。本記事では、Dockerのcommitコマンドを使用して、コンテナからイメージを作成する方法について解説します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- コンテナ内でファイルや設定を手動で変更した後、これらの変更を新しいイメージに反映したい場合
- ベースイメージに依存しない独自のアプリケーション構成を追加する必要がある場合
手順・設定方法
ステップ1: Dockerのcommitコマンドを使用して新しいイメージを作成
# 任意のコンテナ名を指定します。ここでは"my-running-container"とします。
docker commit my-running-container my-new-image
このコマンドは、my-running-containerという名前のコンテナから新しいイメージを作成し、それをmy-new-imageとして保存します。
ステップ2: 新しいイメージを参照するために追加のタグを付与
# イメージに追加のタグを付与します。ここでは"latest"とします。
docker tag my-new-image my-custom-repo/my-new-image:latest
このコマンドは、新しいイメージにmy-custom-repo/my-new-image:latestというタグを付与し、プライベートレジストリ(例:Docker Hub)へのプッシュが可能になります。
ステップ3: 新しいイメージをプライベートレジストリにプッシュ
# Docker CLIを使用して新しいイメージをプライベートレジストリにプッシュします。
docker push my-custom-repo/my-new-image:latest
このステップでは、タグ付けされた新しいイメージをDocker Hub(または他のプライベートレジストリ)にアップロードします。
ステップ4: 実践/トラブルシュート/監視
# コンテナの状態を確認します。
docker ps -a
このコマンドは、コンテナの一覧と詳細情報を表示し、commitコマンドが正しく実行されたことを確認できます。
注意事項
commitコマンドを使用すると、コンテナのファイルシステムがイメージに追加されますが、これにより結果的なイメージサイズが大きくなる可能性があります。commitした後のイメージは、元のベースイメージに依存します。そのため、できるだけ単純なベースイメージを使用することが推奨されます。
まとめ
1. コンテナから新しいイメージを作成する: Dockerのcommitコマンドを使用して、コンテナ内の変更を永続化し、新しいイメージを作成します。
2. 新しいタグを付与する: 新しいイメージに適切なタグを追加し、プライベートレジストリへのプッシュが可能になります。
3. プライベートレジストリにイメージをプッシュする: docker pushコマンドを使用して、新しいイメージをDocker Hub(または他のプライベートレジストリ)にアップロードします。
関連記事: