第2章 コンテナーの管理


本章では、コンテナーの管理方法を説明します。コンテナーのコンテンツを設定する方法は 『コンテンツ管理ガイド』「コンテナーイメージの管理」を参照してください。

2.1. コンテナーホストの準備

前提条件

Red Hat Satellite では、コンテナーを Docker プロバイダータイプのコンピュートリソースにのみデプロイできます。そのため、コンテナーの表示または作成を初めて試みる時に、Satellite によって、Docker コンピュートリソースの作成を求めるプロンプトが出されます。これを行うには、コンテナーホストを作成し、このホストをコンピュートリソースとして指定します。

コンテナーホストの準備

  1. Red Hat カスタマーポータルの 『コンテナーの使用ガイド』ガイドの「RHEL 7 における Docker の取得」で説明している通り、イメージをホストする Red Hat Enterprise Linux 7 サーバーを準備し、このサーバーで docker サービスを有効にします。コンテナーホストは、Satellite Server と同じマシンにデプロイすることも、独立してデプロイすることもできます。

    注記

    現在、Red Hat Enterprise Linux 7 はコンテナーホストにサポートされる唯一のシステムです。docker パッケージは rhel-7-server-extras-rpms リポジトリーで利用できます。Red Hat Enterprise Linux 6 システムは、現在のところコンテナーをホストするシステムとしてサポートされていません。

  2. コンテナーホストで、以下のコマンドを実行して、Satellite Server の CA 証明書をインストールします。

    rpm -Uvh https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

    ここで、satellite.example.com は Satellite Server の完全修飾ドメイン名です。コンテナーホストが Satellite ホストとしてすでに登録されている場合はこの手順を省略します。

  3. コンテナーホストの場所に応じて、以下のタスクを実行します。

    1. コンテナーホストが Satellite Server と同じマシンにある場合には、以下を実行します。

      1. docker ユーザーグループを作成し、foreman ユーザーをそのグループに追加します。

        # groupadd docker
        # usermod -aG docker foreman
      2. /etc/sysconfig/docker ファイルで、OPTIONS 変数を以下のように修正します。

        OPTIONS='--selinux-enabled -G docker'
      3. 影響を受けるサービスを再起動して変更を適用します。

        # systemctl restart docker.service
        # katello-service restart
    2. コンテナーホストが Satellite Server とは異なるマシンにある場合は、以下を実行します。

      1. コンテナーホストのポートを開き、Satellite Server と通信します。/etc/sysconfig/docker ファイルの OPTIONS 変数を以下のように修正します。

        OPTIONS='--selinux-enabled -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'

        TLS が有効な場合はポート 2376 を使用できます。

      2. 以下のように docker サービスを再開し、設定を検証します。

        # systemctl restart docker.service
        # systemctl status docker.service

Docker コンピュートリソースの作成

  1. ポート 5000 が Satellite Server で有効になっていることを確認します。コンテナーホストは、このポートを使用して Satellite Server のコンテンツビューからイメージをプルします。
  2. 『プロビジョニングガイド』「Atomic Host 接続の Satellite Server への追加」 の説明通りに、コンピュートリソースを作成します。コンテナーホストのロケーションに従って、リソースの URL を指定します。

    1. コンテナーホストが Satellite Server と同じマシンにある場合は、unix://var/run/docker.sock をリソース URL として設定します。
  3. コンテナーホストが Satellite Server とは異なるマシンにある場合は、以下の形式で URL を指定します。

    http://container_host_fqdn:2375

    ここで、container_host_fqdn はコンテナーホストの完全修飾ドメイン名を表し、Satellite との通信用にコンテナーホストで開くポート番号は 2375 (TLS を使用している場合は 2376) にできます。

  4. テスト接続 をクリックして、コンテナーホストが利用できるかどうかをテストします。
  5. 送信 をクリックして、コンピュートリソースを作成します。

2.2. コンテナーの作成

Satellite に Docker コンピュートリソースが 1 つ以上あると、コンテナーを作成することができます。新しいコンテナーを作成する方法は「コンテナーの作成」に記載される手順に従ってください。既存コンテナーをモニターする方法は「コンテナーのモニター」を参照してください。

コンテナーを作成するには、まずイメージをインポートする必要があります。イメージは、プラットフォームイメージまたは先に作成したレイヤー化したイメージである場合があります。Satellite は以下のイメージソースをサポートします。

  • ローカルコンテンツ: コンテナーの作成時に コンテンツビュー オプションによって表されます。このオプションを使用すると、一部のコンテンツビューおよびライフサイクル環境で Capsule Server にすでに存在するリポジトリーからイメージをインポートできます。ローカルレジストリーを作成し、これにデータを設定する方法は『コンテンツ管理ガイド』「Red Hat Container Catalog からのコンテナーイメージのインポート」を参照してください。
  • Docker ハブ: Docker ハブレジストリーを検索して、そこからイメージをプルできます。検証済みのコンテンツを含む、信頼されたイメージのみをプルするようにしてください。
  • 外部レジストリー: 先に作成した外部レジストリーからイメージをインポートできます。レジストリーを Red Hat Satellite で作成する方法は『コンテンツ管理ガイド』「他のイメージレジストリーからのコンテナーイメージのインポート」を参照してください。
注記

既存コンテナーの設定を変更することはできません。設定を変更するには「コンテナーの作成」の説明に従って、変更した設定を含む交換用のコンテナーを作成する必要があります。そのため、実際のワークフローでコンテナーが交換可能であることを確認してください。

コンテナーの作成

  1. コンテナー > 新規コンテナー に移動するか、コンテナー > すべてのコンテナー に移動して 新規コンテナーをクリックします。
  2. コンテナー作成の 準備 段階で、以下の設定を行います。

    • コンピュートリソース タブの Deployed on ドロップダウンメニューで、コンピュートリソースを選択します。コンピュートリソースの詳細は『プロビジョニングガイド』「プロビジョニングワークフローの定義」を参照してください。
    • ロケーション タブで、新規コンテナーを利用可能にするロケーションを選択します。
    • 組織 タブで、新規コンテナーを利用可能にする組織を選択します。

      次へ をクリックして、先に進みます。

  3. コンテナー作成の イメージ 段階では、コンテナーのベースとして機能するイメージをインポートします。これは、プラットフォームイメージの場合も、先に作成したレイヤー化されたイメージである場合もあります。以下のいずれかのオプションから選択してください。

    • コンテンツビュー タブを選択して、ライフサイクル環境からイメージをインポートします。ライフサイクル環境、コンテンツビュー、リポジトリー、タグ、および Capsule Server を指定します。
    • Docker ハブ タブを選択し、Docker ハブレジストリーからイメージをインポートします。検索 フィールドにイメージ名を入力すると、Satellite はコンピュートリソースを自動的に検索します。眼鏡のアイコンをクリックして Docker ハブを検索します。検索結果の一覧からイメージを選択し、ドロップダウンリストからタグを選択します。
    • 外部レジストリー タブを選択し、既存のレジストリーからイメージをインポートします。ドロップダウンメニューからレジストリーを選択し、イメージ名でこれを検索します。Satellite は タグ フィールドに、選択したイメージ名に使用できるタグを設定します。詳細は『コンテンツ管理ガイド』「他のイメージレジストリーからのコンテナーイメージのインポート」を参照してください。

      次へ をクリックして、先に進みます。

  4. コンテナー作成の 設定 段階では、以下のパラメーターを設定します。

    • コンテナー名を指定します。
    • コンテナー内で実行するコマンドを指定します。
    • コンテナーが起動するとすぐに実行するコマンドのエントリーポイントを指定します。デフォルトのエントリーポイントは /bin/sh -c です。
    • CPU をコンテナーに割り当てます。たとえば、0-2,16 は CPU 0、1、2、および 16 を表します。
    • コンテナーに使用できる CPU 時間の相対的配分を定義します。
    • コンテナーのメモリー制限を指定します。たとえば、512m と指定すると、コンテナーのメモリー使用量が 512 MB に制限されます。

      次へ をクリックして、先に進みます。

  5. 環境 というコンテナー作成の最終段階では、pseudo-tty を割り当てる必要があるかどうかを選択し、STDIN、STDOUT、および STDERR をコンテナーに割り当てます。環境変数の追加 をクリックしてコンテナーのカスタム環境変数を作成します。実行しますか? チェックボックスを選択して、作成後のコンテナーを自動的に開始します。
  6. 送信 をクリックして、コンテナーを作成します。

コンテナーの作成後に、Satellite はコンテナーのメタデータの概要を表示します。デフォルトで、新規コンテナーは無効になっています (コンテナーの作成時に 実行しますか? チェックボックスを選択していない場合)。コンテナーの開始方法は「コンテナーの開始または停止」を参照してください。

例2.1 Satellite での Red Hat Enterprise Linux コンテナーの作成

Red Hat Enterprise Linux コンテナーを Red Hat Satellite で有効にするには、以下の操作を実行します。

  1. 『コンテンツ管理ガイド』「Red Hat Container Catalog からのコンテナーイメージのインポート」に従ってカスタムレジストリーを作成します。registry.access.redhat.com をレジストリー URL として指定します。
  2. 「コンテナーの作成」に従って新規コンテナーを作成します。コンテナー作成の イメージ 段階で、外部レジストリー タブに移動し、直前の手順で作成されたレジストリーを選択します。検索フィールドを使用して Red Hat Enterprise Linux イメージの必要なバージョンを検索します。設定 および 環境 ステージに進み、コンテナーを完成します。

2.3. コンテナーのモニター

Red Hat Satellite では、コンテナーと、コンテナー内で実行するプロセスの状態をモニターすることができます。一部のコンテナーには managed (管理) というマークが付けられます。このマークは、そのコンテナーが Satellite 環境内で作成され、プロビジョニングされていることを意味します。

以下の手順では、選択した組織のコンテナーを一覧表示し、コンテナーのメタデータをモニターする方法を示します。

コンテナーの調査:

  1. コンテナー > すべてのコンテナー に移動します。
  2. コンテナー ページでは、すべての Docker コンピュートリソースに専用タブが付けられています。これらのタブのそれぞれには、各コンテナーの選択されたパラメーターと共に、利用可能なコンテナーの表が含まれています。検査するコンピュートリソースのタブを選択します。
  3. コンテナーのメタデータを表示するには、検査するコンテナーの名前をクリックします。Satellite ではコンテナーのプロパティーの表が表示されます。
  4. プロセス タブでは、コンテナーで現在実行しているプロセスを表示できます。プロセス名をクリックして、そのプロセスのメタデータを表示します。
  5. コンテナーが実行している場合、その標準出力を ログ タブで確認できます。コンテナーの作成時に pseudo-tty の割り当て チェックボックスを選択している場合、コンソールは対話的になります。そうでない場合は、コンテナーの開始時に生成される初期の標準出力が表示されます。

2.4. コンテナーの開始、コミット、および削除

デフォルトで新規コンテナーは無効になります。コンテナーを有効にして、コンピュートリソースでコンテナー化されたアプリケーションのプロセスを開始します。次にホストは、Web アプリケーションの場合と同様にコンテナーと通信できます。以下の手順では、コンテナーを開始し、停止する方法を示します。

コンテナーの開始または停止

  1. コンテナー > すべてのコンテナー に移動して、利用可能なコンテナーの一覧を表示します。
  2. 開始するコンテナーの横にある パワーオン をクリックします。コンテナーが開始するとボタンが パワーオフ に切り替わり、これをクリックするとコンテナーが停止します。これらの操作は docker start コマンドおよび docker stop コマンドと同等です。

以下の手順では、コンテナーをコミットしてコンテナーの状態を保存する新規のイメージレイヤーを作成します。

コンテナーのコミット

  1. コンテナー > すべてのコンテナー に移動して、利用可能なコンテナーの一覧を表示します。
  2. コミットするコンテナーの名前をクリックします。
  3. コミット をクリックします。Satellite は、以下を行うプロンプトを表示します。

    • リポジトリー名を指定します。これには 1 つの名前、または user/my-rhel-image などのようにユーザー名と組み合わせて指定できます。
    • タグをイメージに割り当てます。
    • 問い合わせ先情報を指定します。
    • イメージ情報のコメントを入力します。
  4. 送信 をクリックします。
注記

コンテナーは元のイメージのリポジトリーにコミットされます。たとえば、コンテナーが Docker ハブからプルされたイメージをベースにしている場合、コミットされた変更は Docker ハブに戻されます。

コンテナーの削除

  1. コンテナー > すべてのコンテナー に移動して、利用可能なコンテナーの一覧を表示します。
  2. 削除するコンテナーの名前をクリックします。
  3. 削除 をクリックします。
  4. 警告ボックスで、OK をクリックしてコンテナーを削除します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.