type
status
date
slug
summary
tags
category
icon
password

コンテナイメージの操作

目標

このセクションを完了すると、以下のスキルが身につきます:
  1. コンテナイメージをエクスポート・インポートし、ローカルおよびレジストリで管理する。
  1. docker commit コマンドを使用して新しいコンテナイメージを作成する。
  1. コンテナ内で変更されたファイルを特定する。
  1. 配布目的でイメージタグを管理する。

概要

コンテナイメージを管理する方法はさまざまです。例えば、開発者がカスタムコンテナを作成し、他の開発者や本番環境に転送したい場合には、以下の方法があります:
  1. コンテナイメージを .tar ファイルとして保存する。
  1. コンテナイメージをイメージレジストリにプッシュする。

注意

カスタムコンテナイメージの作成には、docker commit を利用する方法もありますが、推奨される方法は Dockerfile を使用することです。この方法は次の章で説明されます。

1. イメージの保存と読み込み

保存 (docker save)

  • Dockerキャッシュ内の既存のイメージを .tar ファイルとして保存できます。
  • 保存されたファイルは通常の tar ファイルではなく、イメージのメタデータやレイヤー情報を含む特別な形式です。
  • コマンド構文:
    • 例:

      読み込み (docker load)

      • 保存された .tar ファイルを Dockerキャッシュに復元できます。
      • コマンド構文:
        • 例:

          補足

          • ディスク容量を節約するため、保存時にファイルを Gzip 圧縮することができます。
          • docker load は自動的に Gzip 圧縮ファイルを展開して読み込みます。

          2. イメージのレジストリへの公開

          タグ付け (docker tag)

          レジストリにイメージを公開する前に、イメージにタグを付けて識別する必要があります。
          • コマンド構文:
            • 例:

              公開 (docker push)

              タグ付けされたイメージをレジストリにプッシュします。
              • コマンド構文:

                3. イメージの削除

                削除 (docker rmi)

                キャッシュ内のイメージは不要になることがあります。イメージを削除する際には、以下のコマンドを使用します。
                • コマンド構文:
                  • コンテナで使用中のイメージは削除できません。先にコンテナを停止・削除する必要があります。
                  • 使用されていないすべてのイメージを削除する場合:

                    補足

                    • イメージが複数のタグで参照されている場合、各タグを個別に削除する必要があります。ただし、-force オプションを使用することで強制削除が可能です。

                    4. イメージの変更

                    docker commit

                    Dockerfileを使用せず、実行中のコンテナを直接変更して新しいイメージを作成することも可能です。
                    • コマンド構文:
                      • 例:

                        変更内容の確認

                        コンテナ内で変更されたファイルを確認するには、docker diff を使用します。
                        • コマンド構文:

                          5. タグ付けのベストプラクティス

                          推奨事項

                          • latest タグは、自動的に最新ビルドと見なされますが、プロジェクトによっては最新リリースを示す場合があります。
                          • バージョン管理を簡単にするため、複数のタグを使用して特定のリリースやバージョンを明確化することが推奨されます。

                          Docker イメージとタグの関係

                          • 1つのDockerイメージには複数のタグ(tag)を付けることができる。
                          • タグは イメージのバージョン管理 に使用される(例:latestv1.0stable など)。
                          • 異なるタグを持っていても、同じ IMAGE ID を指すことができる。

                          タグの追加(例)

                          ローカルにある myapp というイメージ(IMAGE ID: abc123)に複数のタグを付ける:
                          これにより、同じイメージに 3つの異なるタグ が付けられる。

                          タグ付きのイメージを確認

                          出力例:
                          すべてのタグが 同じ IMAGE ID(abc123) を指している。

                          タグ付きのイメージをプッシュ(リポジトリに送信)

                          このコマンドで、リモートの Docker レジストリ(Docker Hub やプライベートレジストリ)にイメージをアップロードできる。

                          タグを削除

                          特定のタグのみ削除する場合:
                          これは stable タグのみ削除し、イメージ自体は latestv1.0 タグが残っている限り削除されない。

                          まとめ

                          1つのDockerイメージに複数のタグを付けられる。
                          タグはバージョン管理に便利(例:latestv1.0stable など)。
                          プッシュやプル(push/pull)時にタグを指定して管理できる。
                          タグを削除しても、他のタグが残っていればイメージ自体は削除されない。
                          タグをうまく活用することで、Dockerイメージの管理がしやすくなる! 🚀
                           
                          14- 第4章:コンテナイメージの管理-1:レジストリへのアクセスの説明16- 第4章:コンテナイメージの管理-3:カスタムコンテナイメージ作成の演習
                          Loading...
                          minami
                          minami
                          一个普通的干饭人🍚
                          Announcement

                          🎉 ブログへようこそ 🎉

                          notion image
                          名前:みなみ独立事務所
                          性別:男
                          国籍:China
                          完全独学だけで基本情報をはじめ31個の資格を仕事をしながら合格。 現在はIT会社の技術担当や、ブログの執筆や学習支援などを手掛けています。 独学で合格できる学習法、勉強法、試験対策を配信します!

                          📚 主な内容

                          💻 IT・システム開発
                          🏠 不動産 × 宅建士
                          🎓 MBA 学習記録

                          🔍 コンテンツの探し方

                          現在、サイトのデザインはシンプルなため、情報がやや探しにくいかもしれません。
                          気になるテーマを探す際は、タグ検索の利用をおすすめします。