第6章 コンテナーの使用


Docker は、Linux コンテナー内のアプリケーションのデプロイメントを自動化するオープンソースプロジェクトで、アプリケーションとそのランタイム依存関係をコンテナーにパッケージ化する機能を提供します。Linux コンテナーは、セキュリティーを強化する一方で、迅速なアプリケーションデプロイメント、単純なテスト、メンテナンス、およびトラブルシューティングを可能にします。詳細は、Red Hat カスタマーポータルの記事 Get Started with Docker Formatted Container Images on Red Hat Systems を参照してください。[1].
Docker フォーマットのコンテナーは以下の部分で設定されています。
  • コンテナー: アプリケーションのサンドボックス各コンテナーは、必要な設定データを保持するイメージに基づいています。イメージからコンテナーを起動すると、書き込み可能な階層がこのイメージの上部に追加されます。コンテナーをコミットするたびに、変更を保存する新しいイメージ層が追加されます。
  • イメージ: 変更されることのない、コンテナーの設定の静的スナップショット。コンテナーに加えた変更は、新しいイメージレイヤーを作成することによってのみ保存できます。各イメージは、複数の親イメージに依存します。
  • プラットフォームイメージ: 親を持たないイメージ。プラットフォームイメージは、コンテナー化されたアプリケーションの実行に必要なランタイム環境、パッケージ、およびユーティリティーを定義します。プラットフォームイメージは書き込み可能ではないため、その上部にスタックされたコピーイメージに変更が反映されます。Red Hat Satellite から Red Hat Enterprise Linux プラットフォームイメージにアクセスする方法は、例6.1「Satellite での Red Hat Enterprise Linux コンテナーの作成」 を参照してください。
  • レジストリー: ダウンロード可能なイメージが含まれるパブリックまたはプライベートアーカイブ。一部のレジストリーでは、ユーザーがイメージをアップロードして他のユーザーが利用できるようにすることができます。Red Hat Satellite では、ローカルおよび外部のレジストリーからイメージをインポートできます。Satellite 自体はホストのイメージレジストリーとして機能できますが、ホストは変更をレジストリーに戻すことができません。詳細は、を参照してください。 「コンテナーの作成」
  • タグ: リポジトリー内のイメージを区別するために使用するマーク(通常はイメージに保存されるアプリケーションのバージョン)。リポジトリーは、コンテナーレジストリー内の同様のイメージをグループ化するために使用されます。イメージには一意の英数字の ID のみがあるため、フォームまたは リポジトリー: :タグ を使用すると、人間が判読できるイメージを識別できます。詳しい情報は、「コンテナータグの使用」 および 「リポジトリーの管理」 を参照してください。
Red Hat Satellite では、オンプレミスレジストリーを作成し、さまざまなソースからイメージをインポートし、コンテンツビューを使用してそれらをコンテナーに配信できます(コンテンツビューにイメージを読み込む方法は、「リポジトリーのコンテンツビューへの追加」 を参照してください)。Satellite は、コンテナーを実行するサーバーとして機能する 1 つ以上の Docker コンピュートリソースの作成をサポートします。このようにして、イメージのインポート、このイメージに基づくコンテナーの起動、コンテナーのアクティビティーの監視、さらに伝搬可能な新規イメージレイヤーに状態をコミットできます。

6.1. コンテナーの管理

以下のセクションでは、コンテナーを作成し、表示し、開始し、停止し、コミットする方法について示します。

前提条件

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

手順6.1 コンテナーホストを準備するには、以下を実行します。

  1. Red Hat カスタマーポータルの Getting Started with Docker Formatted Container Images on Red Hat Systems ガイドの Getting Docker in RHEL 7 セクションで説明されているように、イメージをホストするために Red Hat Enterprise Linux 7 サーバーを準備し、このサーバーで Docker サービスを有効にします。[2].コンテナーホストは、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
    Copy to Clipboard Toggle word wrap
    ここで、satellite.example.com は Satellite Server の完全修飾ドメイン名に置き換えます。コンテナーホストがすでに Satellite ホストとして登録されている場合は、この手順をスキップしてください。
  3. コンテナーホストのロケーションに応じて以下のタスクを実行します。
    • コンテナーホストが Satellite Server と同じマシンにある場合には、以下を実行します。
      1. docker ユーザーグループを作成し、foreman ユーザーをそれに追加します。
        # groupadd docker
        # usermod -aG docker foreman
        Copy to Clipboard Toggle word wrap
      2. 以下のように、/etc/sysconfig/docker ファイルの OPTIONS 変数を変更します。
        OPTIONS='--selinux-enabled -G docker'
        Copy to Clipboard Toggle word wrap
      3. 影響を受けるサービスを再起動して変更を適用します。
        # systemctl restart docker.service
        # katello-service restart
        Copy to Clipboard Toggle word wrap
    • コンテナーホストが 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'
        Copy to Clipboard Toggle word wrap
        TLS が有効な場合、ポート 2376 を使用できます。
      2. 以下のように docker サービスを再開し、設定を検証します。
        # systemctl restart docker.service
        # systemctl status docker.service
        Copy to Clipboard Toggle word wrap

手順6.2 Docker コンピュートリソースを作成するには、以下を実行します。

  1. ポート 5000 が Satellite Server で有効になっていることを確認します。コンテナーホストはこのポートを使用して、Satellite Server のコンテンツビューからイメージをプルします。
  2. 「コンピュートリソース」 の説明に従って、コンピュートリソースを作成します。コンテナーホストの場所に従ってリソース URL を指定します。
    1. コンテナーホストが Satellite Server と同じマシンにある場合は、リソース URL として unix://var/run/docker.sock を設定します。
    2. コンテナーホストが Satellite Server 以外のマシンにある場合、以下の形式で URL を指定します。
      http://container_host_fqdn:2375
      Copy to Clipboard Toggle word wrap
      ここで、container_host_fqdn はコンテナーホストの完全修飾ドメイン名を表し、Satellite との通信用にコンテナーホストで開かれるポート番号は 2375 または TLS を使用している場合は 2376 のいずれかになります。
  3. Test Connection をクリックして、コンテナーホストが利用可能かどうかをテストします。
  4. Submit をクリックしてコンピュートリソースを作成します。

6.1.1. コンテナーの作成

Satellite に Docker コンピュートリソースが少なくとも 1 つある場合は、コンテナーを作成できます。新しいコンテナーを作成するには、手順6.3「コンテナーを作成するには、以下を実行します。」 で説明されている手順に従います。既存のコンテナーをモニターする方法は、「コンテナーのモニター」 を参照してください。
コンテナーを作成するには、まずイメージをインポートする必要があります。これは、プラットフォームイメージまたは以前に作成したレイヤー化されたイメージである場合があります。Satellite は以下のイメージソースをサポートします。
  • ローカルコンテンツ: コンテナーの作成時に コンテンツビュー オプションによって表されます。このオプションを使用すると、特定のコンテンツビューおよびライフサイクル環境の Capsule Server にすでに存在するリポジトリーからイメージをインポートできます。ローカルレジストリーの作成および設定方法の詳細は、「リポジトリーの管理」 を参照してください。
  • docker Hub: Docker Hub レジストリーを検索して、そこからイメージをプルすることができます。コンテンツの検証済みの信頼できるイメージだけを取得するようにしてください。
  • 外部レジストリー: 以前に作成した外部レジストリーからイメージをインポートできます。Red Hat Satellite でのレジストリーの作成の詳細は、「外部レジストリーのインポート」 を参照してください。
注記
既存のコンテナーの設定を変更することはできません。設定を変更するには、手順6.3「コンテナーを作成するには、以下を実行します。」 の説明に従って、設定を変更して代替コンテナーを作成する必要があります。したがって、ワークフローでコンテナーを置き換えることができることを確認してください。

手順6.3 コンテナーを作成するには、以下を実行します。

  1. Containers New Container に移動します。あるいは、Containers All Containers に移動し、New container をクリックします。
  2. コンテナー作成の Preliminary 段階で、以下の設定を設定します。
    • Compute resource タブで、Deployed on ドロップダウンメニューからコンピュートリソースを選択します。コンピュートリソースについての詳細は、「コンピュートリソース」 を参照してください。
    • Locations タブで、新しいコンテナーを利用可能にするロケーションを選択します。
    • 組織 タブで、新規コンテナーを利用可能にする組織を選択します。
    Next をクリックして先に進みます。
  3. コンテナー作成のイメージ段階で、コンテナーのベースとして機能するイメージをインポートします。これは、プラットフォームイメージ、または以前に作成したレイヤー構造イメージである可能性があります。次のいずれかのオプションを選択します。
    • Content View タブを選択して、ライフサイクル環境からイメージをインポートします。ライフサイクル環境、コンテンツビュー、リポジトリー、タグ、および Capsule Server を指定します。
    • Docker Hub タブを選択して、Docker Hub レジストリーからイメージをインポートします。検索 フィールドにイメージ名を入力すると、Satellite は自動的にコンピュートリソースを検索します。探している glass アイコンをクリックして、Docker Hub を検索します。検索結果の一覧からイメージを選択し、ドロップダウンリストからタグを選択します。
    • External registry タブを選択して、既存のレジストリーからイメージをインポートします。ドロップダウンメニューからレジストリーを選択し、イメージ名で検索します。Satellite は、Tag フィールドに選択したイメージ名で使用できるタグを設定します。詳細は、「外部レジストリーのインポート」 を参照してください。
    Next をクリックして先に進みます。
  4. コンテナー作成の 設定 段階で、次のパラメーターを設定します。
    • コンテナー名を指定します。
    • コンテナー内で実行するコマンドを指定します。
    • コンテナーが起動するとすぐに自動的に実行されるコマンドであるエントリーポイントを指定します。デフォルトのエントリーポイントは /bin/sh -c です。
    • CPU をコンテナーに割り当てます。たとえば、0-2,16 は CPU 0、1、2、および 16 を表します。
    • コンテナーに使用できる CPU 時間の相対的配分を定義します。
    • コンテナーのメモリー制限を指定します。たとえば、512m では、コンテナーのメモリー使用を 512 MB に制限します。
    Next をクリックして先に進みます。
  5. Environment という名前のコンテナー作成の最終段階で、pseudo-tty を割り当てるか、STDIN、STDOUT、および STDERR をコンテナーに割り当てるかどうかを選択します。Add environment variable をクリックして、コンテナーのカスタム環境変数を作成します。Run? チェックボックスを選択して、作成後にコンテナーを自動的に起動します。
  6. Submit をクリックしてコンテナーを作成します。
コンテナーの作成後、Satellite はコンテナーメタデータの概要を表示します。デフォルトでは、コンテナーの作成時に Run? チェックボックスを選択していない限り、新規コンテナーは無効になっています。コンテナーを起動する方法は、手順6.5「コンテナーを開始または停止するには、以下を実行します。」 を参照してください。

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

Red Hat Satellite で Red Hat Enterprise Linux コンテナーを有効にするには、以下の操作を実行します。
  1. 「外部レジストリーのインポート」 の説明に従ってカスタムレジストリーを作成します。registry.access.redhat.com をレジストリー URL として指定します。
  2. 「コンテナーの作成」 の説明に従って、新しいコンテナーを作成します。Image stage of container creation で、External registry タブに移動し、直前の手順で作成したレジストリーを選択します。検索フィールドを使用して、必要なバージョンの Red Hat Enterprise Linux イメージを検索します。設定 ステージと 環境 ステージに従って、コンテナーを完了します。

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

Red Hat Satellite では、コンテナーとコンテナー内で実行されているプロセスのステータスを監視する手段が提供されます。一部のコンテナーは、マネージド とマークできます。つまり、コンテナーは Satellite 環境内で作成およびプロビジョニングされたことを意味します。
以下の手順では、選択した組織をリスト表示し、コンテナーのメタデータをモニターする方法について示します。

手順6.4 コンテナーを調査するには、以下を実行します。

  1. Containers All Containers に移動します。
  2. コンテナーページでは、すべての Docker コンピュートリソースに専用のタブがあります。これらの各タブには、使用可能なコンテナーの表と、各コンテナーの選択したパラメーターが含まれます。検査するコンピュートリソースのタブを選択します。
  3. コンテナーのメタデータを表示するには、検査するコンテナーの名前をクリックします。Satellite にはコンテナープロパティーの表が表示されます。
  4. Processes タブでは、コンテナーで現在実行されているプロセスを表示できます。プロセス名をクリックして、プロセスのメタデータを表示します。
  5. コンテナーが実行されている場合、その標準出力を Logs タブに表示できます。コンテナーの作成時に allocate a pseudo-tty チェックボックスを選択した場合は、コンソールはインタラクティブになります。それ以外の場合は、コンテナーの起動時に生成された最初の標準出力が表示されます。

6.1.3. コンテナーの起動、コミット、削除

新規コンテナーはデフォルトで無効になっています。コンテナーを有効にすると、コンピュートリソースでコンテナー化されたアプリケーションのプロセスを開始します。その後、ホストは Web アプリケーションと同じコンテナーと通信できます。以下の手順では、コンテナーを起動および停止する方法を説明します。

手順6.5 コンテナーを開始または停止するには、以下を実行します。

  1. Containers All Containers に移動し、利用可能なコンテナーの一覧を表示します。
  2. 起動するコンテナーの横にある Power On をクリックします。コンテナーを起動すると、このボタンは Power Off に変わります。これにより、コンテナーの停止が可能になります。これらのアクションは docker start および docker stop コマンドと同等です。
以下の手順では、コンテナーをコミットしてコンテナーの状態を保存する新規のイメージレイヤーを作成します。

手順6.6 コンテナーをコミットするには、以下を実行します。

  1. Containers All Containers に移動し、利用可能なコンテナーの一覧を表示します。
  2. コミットするコンテナーの名前をクリックします。
  3. Commit をクリックします。Satellite は以下を求めるプロンプトを表示します。
    • リポジトリー名を指定します。これは、名前を 1 つでも(例: user/my-rhel-image )、ユーザー名と組み合わせることもできます。
    • タグをイメージに割り当てます。
    • 問い合わせ先情報を指定します。
    • イメージ情報のコメントを入力します。
  4. 送信 をクリックします。
注記
コンテナーは元のイメージのリポジトリーにコミットされます。たとえば、コンテナーが Docker Hub からプルされたイメージに基づいている場合、コミットされた変更は Docker Hub にプッシュされます。

手順6.7 コンテナーを削除するには、以下を実行します。

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

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat