type
status
date
slug
summary
tags
category
icon
password

第4章: コンテナイメージの管理

目標: コンテナイメージのライフサイクルを作成から削除まで管理する。
目的:
  • リモートレジストリからイメージを検索・取得する。
  • コンテナイメージをローカルまたはレジストリでエクスポート・インポート・管理する。

セクション

  1. レジストリへのアクセス (クイズ付き)
  1. コンテナイメージの操作 (ガイド演習付き)

レジストリへのアクセス

目的

以下が達成できるようになる:
  • リモートレジストリからイメージを検索・取得する。
  • 認証済みの公共レジストリを使用するメリットを説明できる。
  • Dockerデーモンをカスタマイズして別のコンテナイメージレジストリにアクセスできるようにする。
  • DockerコマンドやREST APIを使ってコンテナイメージを検索する。
  • レジストリからイメージを取得する。
  • ダウンロード済みのイメージをデーモンキャッシュから確認する。
  • タグを管理して特定のバージョンのイメージを取得する。

💡
 

1. レジストリ (Registry)

  • レジストリは、コンテナイメージを保管・管理するための場所です。いわば「コンテナイメージの倉庫」と言えます。
  • 例: Docker Hub、Amazon Elastic Container Registry (ECR)、Google Container Registry (GCR) など。

2. リポジトリ (Repository)

  • レジストリの中に存在する「特定のプロジェクトやソフトウェアのコンテナイメージの集合」です。
  • 一つのリポジトリには、通常、特定のソフトウェアやサービスに関連する複数のイメージがタグ(バージョン)付きで保存されます。
  • 例:
    • nginx というリポジトリには、nginx:1.21nginx:1.22 のようなバージョンが含まれます。

3. コンテナイメージ

  • コンテナイメージは、ソフトウェアとその実行環境(ライブラリや設定など)のパッケージです。これを元にコンテナが動作します。

構造の例

  1. レジストリ: Docker Hub
  1. リポジトリ: library/nginx
  1. イメージ:
      • nginx:1.21
      • nginx:1.22

例文でイメージする

  • 「レジストリにアクセスして、nginx リポジトリから最新バージョンのコンテナイメージをプルする」 → Docker コマンドで表すと:
    まとめると、レジストリは倉庫、リポジトリはその中の棚、イメージはその棚に置かれた具体的なアイテムのようなものです!

    公共レジストリ

    • Docker Hub: Dockerが提供する公共レジストリで、Apache、MySQL、Jenkinsなどの主要なOSSや、コミュニティが開発したカスタムイメージを多数ホストしている。
    • 注意点:
      • コミュニティ提供の一部イメージはセキュリティを考慮しておらず、プロダクション環境での利用にはリスクがある。
      • 例: ルートアクセスが必要なコンテナや、ShellShock脆弱性を含むツールが含まれる可能性がある。

    Red Hatの公共レジストリのメリット

    • 信頼性: Red Hatが信頼できるソースからビルド。
    • オリジナル依存関係: パッケージの改ざんがなく、既知のライブラリのみを含む。
    • 脆弱性フリー: 既知の脆弱性を排除。
    • RHEL互換: Red Hat Enterprise Linuxプラットフォームとの完全な互換性。
    • Red Hatサポート: スタック全体の商業的サポートを提供。

    プライベートレジストリ

    • チームが内部利用のためにカスタムコンテナイメージを配布する場合、プライベートレジストリを使用する方が適切。
    • RHELホストでプライベートレジストリを使用するには、/etc/sysconfig/dockerファイルのADD_REGISTRY変数を更新する必要がある。

    設定例

    以下のように設定:
    • 設定を有効にするには、Dockerデーモンの再起動が必要:

    セキュリティ接続の設定

    • 信頼できる閉鎖環境では、/etc/sysconfig/dockerに以下を追加してセキュリティなし接続をサポートできる:

    レジストリへのアクセス方法

    DockerデーモンはDockerコマンドを介してRESTful APIでコンテナイメージレジストリにアクセスする。
    • コマンド:

    主要オプション

    オプション
    説明
    --automated=true
    Dockerfileを使った自動ビルドイメージのみ表示
    --no-trunc=true
    出力を省略せず全体を表示
    --stars=N
    指定したスター数以上のイメージを表示

    注意点

    • 最大25件までの検索結果しか表示されず、利用可能なタグは一覧に含まれない。
    • RESTful APIを使用することで制限を克服できる。
    REST APIは、curlなどのHTTPツールを使ってレジストリ情報を取得し、Dockerクライアントの問題をトラブルシュートする際に便利。

    違いのまとめ

    特徴
    Docker Registry
    Docker Hub
    用途
    プライベートなレジストリ、企業内で使用
    パブリックおよびプライベートリポジトリ
    対象ユーザー
    企業、開発チーム、プライベートユーザー
    個人ユーザー、開発者、企業
    リポジトリの管理
    企業内で管理される、カスタムイメージが多い
    オープンソース、他ユーザーと共有されることが多い
    アクセス制限
    企業内や認証されたユーザーのみアクセス可
    パブリックに公開されたものも多く、認証が必要な場合も
    イメージの取得方法
    オンプレミスでの運用が多い
    Docker HubのWebインターフェースからも取得可能

    コンテナイメージ管理に関する手順

    1. レジストリに保存されているコンテナイメージの一覧取得

    特定のレジストリからイメージ一覧を取得するには、REST APIを使用します。
    nパラメータを指定することで、取得するイメージ数を制御できます。

    コマンド例

    出力例


    2. イメージのタグ情報を取得

    特定のイメージに関連するタグ一覧を取得するには、以下のAPIを使用します。
    GET /v2/<リポジトリ名>/tags/list

    手順

    1. ユーザー名とパスワードを定義
      1. 認証トークンを取得
        1. リポジトリ一覧を取得
          1. タグ情報の取得

            3. プライベートレジストリでのイメージ検索

            プライベートレジストリでイメージを検索するには、docker-registry-cliスクリプトを使用します。

            コマンド例

            • すべてのイメージを一覧表示
              • 出力例:
            • 特定文字列で検索
              • 出力例:

            4. コンテナイメージの取得 (Pull)

            Dockerコマンドを使用して、レジストリからイメージを取得します。

            コマンド構文

            オプション例

            • -all-tags=true : リポジトリ内のすべてのタグを取得
            • -disable-content-trust=true : イメージの検証をスキップ

            コマンド例


            5. キャッシュされたイメージの一覧確認

            ホストにキャッシュされたコンテナイメージを確認するには、以下のコマンドを使用します。

            コマンド例

            出力例


            参考リンク



            シナリオ

            1. 環境設定
                • RHELホストに Docker デーモンがインストールされており、以下の内容の /etc/sysconfig/docker ファイルがある:
                  • registry.access.redhat.comdocker.io にはレジストリが稼働している。
                  • 両レジストリは有効な証明書を持ち、バージョン1のレジストリを使用。
                  • まだイメージはデーモンにダウンロードされていない。
              1. イメージ情報
                  • registry.access.redhat.com のイメージ:
                    • nginx/1.0
                    • mysql/5.6
                    • httpd/2.2
                  • docker.io のイメージ:
                    • mysql/5.5
                    • httpd/2.4

              クイズ

              1. 次のコマンドのうち、registry.access.redhat.com からダウンロード可能な mysql イメージを検索する正しいコマンドを2つ選びなさい。

              a. docker search registry.access.redhat.com/mysql
              b. docker images
              c. docker pull mysql
              d. docker search mysql
              正解
              ad

              2. httpd コンテナイメージのすべてのタグを表示するコマンドはどれですか?

              a. docker search httpd
              b. docker images httpd
              c. docker pull --all-tags=true httpd
              d. タグを検索するDockerコマンドは存在しない。
              正解
              d

              3. 次のコマンドのうち、タグ 2.2httpd イメージをダウンロードする正しいコマンドを2つ選びなさい。

              a. docker pull httpd:2.2
              b. docker pull httpd:latest
              c. docker pull docker.io/httpd
              d. docker pull registry.access.redhat.com/httpd:2.2
              正解
              ad

              4. 以下のコマンドを実行した後、docker images コマンドの出力結果はどれですか?

              • 選択肢
                • Option 1:
                  • Option 2:
                    • Option 3:
                      • Option 4:
                      正解
                      3
                       
                       
                      13- 第3章: コンテナの管理-6:MySQL データベースのロードの演習15- 第4章:コンテナイメージの管理-2:コンテナイメージの操作の説明
                      Loading...
                      minami
                      minami
                      一个普通的干饭人🍚
                      Announcement

                      🎉 ブログへようこそ 🎉

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

                      📚 主な内容

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

                      🔍 コンテンツの探し方

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