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
                       
                      相关文章
                      RedHat EX200 本番近い試験問題集
                      Lazy loaded image
                      RedHat EX200 本番試験問題集(有料版)
                      Lazy loaded image
                      18-Red Hat DO285 第5章:カスタムコンテナイメージの作成-1:コンテナイメージの管理ラボ
                      Lazy loaded image
                      17-Red Hat DO285 第4章:コンテナイメージの管理-4:コンテナイメージの管理ラボ
                      Lazy loaded image
                      16-Red Hat DO285 第4章:コンテナイメージの管理-3:ガイド付き演習
                      Lazy loaded image
                      15-Red Hat DO285 第4章:コンテナイメージの管理-2:コンテナイメージの操作
                      Lazy loaded image
                      15-Red Hat DO285 第4章:コンテナイメージの管理-2:コンテナイメージの操作13-Red Hat DO285 第3章: コンテナの管理-6:ガイド付き演習:MySQL データベースのロード
                      Loading...
                      みなみ
                      みなみ
                      一个普通的干饭人🍚
                      最新发布
                      02-生成AIパスポート試験対策:第2章「生成AI」
                      2025-2-1
                      01-生成AIパスポート試験対策:第1章「人口知能」
                      2025-2-1
                      究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
                      2025-1-27
                      不要再傻傻的直接买NISA啦
                      2025-1-27
                      Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
                      2025-1-24
                      529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
                      2025-1-22
                      公告
                      🎉欢迎访问我的博客🎉
                      - 感谢您的支持 --
                      本站点于2024/09/01建立
                      👏主要分享IT相关主题👏
                      系统管理:
                      Redhat…
                      容器和编排:
                      Kubernetes、Openshift…
                      云计算:
                      AWS、IBM…
                      AI入门
                      以及技术笔记和考证经验
                      定期更新,欢迎互动。
                      感谢访问!
                      快速浏览相关标签