第6章 コンテナーの使用
コンテナー: アプリケーションサンドボックスです。各コンテナーは必要な設定データを保持するイメージをベースとしています。イメージからコンテナーを起動すると、書き込み可能なレイヤーがイメージの上部に追加されます。コンテナーをコミットする際はいつでも、変更を保存するために新規のイメージレイヤーが追加されます。イメージ: 決して変更されることのない、コンテナーの設定の静的なスナップショットです。コンテナーへの変更は新規イメージレイヤーを作成することによってのみ保存できます。各イメージは 1 つまたは複数の親イメージに依存します。プラットフォームイメージ: 親を持たないイメージです。プラットフォームイメージは、ランタイム環境、パッケージ、コンテナー化されたアプリケーションの実行に必要なユーティリティーなどを定義します。プラットフォームイメージは書き込みができないため、変更はすべて上に重ねられるコピーイメージに反映されます。Red Hat Satellite から Red Hat Enterprise Linux プラットフォームイメージにアクセスする方法については、例6.1「Satellite での Red Hat Enterprise Linux コンテナーの作成」 を参照してください。レジストリー: ダウンロードできるイメージが含まれる公開または非公開のアーカイブです。一部のレジストリーを使うと、イメージをアップロードして他のユーザーに利用可能にすることができます。Red Hat Satellite では、ローカルおよび外部レジストリーからイメージをインポートすることができます。Satellite 自体はホストのイメージレジストリーとして機能できますが、ホストは変更をレジストリーに戻すことはできません。詳細は、「コンテナーの作成」 を参照してください。タグ: リポジトリーにあるイメージを、通常はイメージに保存されたアプリケーションのバージョンで区別するために使用されるマークです。リポジトリーは、コンテナーレジストリーの同様のイメージを分類するために使用されます。イメージには固有の英数字の ID のみを設定できるので、repository:tag などの形式により、人間の読み取り可能な方法でイメージを識別できます。詳細は、「コンテナータグの使用」 および 「リポジトリーの管理」 を参照してください。
6.1. コンテナーの管理
前提条件
手順6.1 コンテナーホストを準備するには、以下を実行します。
- Red Hat カスタマーポータルにある Get Started with Docker Formatted Container Images on Red Hat Systems (Docker フォーマットのコンテナーイメージの使用方法) ガイドの Getting Docker in RHEL 7 (RHEL 7 の Docker の取得) セクション[2] で説明されているように、イメージをホストする Red Hat Enterprise Linux 7 サーバーを準備し、このサーバーで
dockerサービスを有効にします。コンテナーホストは、Satellite Server と同じマシンにデプロイすることも、独立してデプロイすることもできます。注記
現在、Red Hat Enterprise Linux 7 はコンテナーホスト用にサポートされる唯一のシステムです。docker パッケージは rhel-7-server-extras-rpms リポジトリーで利用できます。Red Hat Enterprise Linux 6 システムは、現在のところコンテナーをホストするシステムとしてサポートされていません。 - コンテナーホストで以下のコマンドを実行し、Satellite Server の CA 証明書をインストールします。
rpm -Uvh https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
ここで、satellite.example.com は Satellite Server の完全修飾ドメイン名です。コンテナーホストが Satellite ホストとしてすでに登録されている場合にはこの手順を省略します。 - コンテナーホストのロケーションに応じて以下のタスクを実行します。
- コンテナーホストが Satellite Server と同じマシンにある場合には、以下を実行します。
- docker ユーザーグループを作成し、foreman ユーザーをそれに追加します。
# groupadd docker # usermod -aG docker foreman
- 以下のように
/etc/sysconfig/dockerファイルの OPTIONS 変数を変更します。OPTIONS='--selinux-enabled -G docker'
- 影響を受けるサービスを再起動して変更を適用します。
# systemctl restart docker.service # katello-service restart
- コンテナーホストが Satellite Server 以外のマシンにある場合は、以下を実行します。
- コンテナーホストのポートを開き、Satellite Server と通信します。これを実行するには、以下のように
/etc/sysconfig/dockerファイルの OPTIONS 変数を変更します。OPTIONS='--selinux-enabled -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
TLS が有効な場合はポート2376を使用できます。 - 以下のように docker サービスを再開し、設定を検証します。
# systemctl restart docker.service # systemctl status docker.service
手順6.2 Docker コンピュートリソースを作成するには、以下を実行します。
- ポート 5000 が Satellite Server で有効にされていることを確認します。コンテナーホストはこのポートを使用して Satellite Server のコンテンツビューからイメージをプルします。
- 「コンピュートリソース」 にあるようにコンピュートリソースを作成します。コンテナーホストのロケーションに応じてリソース URL を指定します。
- コンテナーホストが Satellite Server と同じマシン上にある場合、unix://var/run/docker.sock をリソース URL として設定します。
- コンテナーホストが Satellite Server 以外のマシンにある場合、以下の形式で URL を指定します。
http://container_host_fqdn:2375
ここで、container_host_fqdn はコンテナーホストの完全修飾ドメイン名を表し、Satellite との通信用にコンテナーホストで開かれるポート番号は2375か、TLS を使用している場合は2376にすることができます。
- をクリックしてコンテナーホストが利用できるかどうかをテストします。
- をクリックしてコンピュートリソースを作成します。
6.1.1. コンテナーの作成
- ローカルコンテンツ: コンテナーの作成時に
コンテンツビューオプションによって表されます。このオプションを使用すると、一部のコンテンツビューおよびライフサイクル環境で Capsule Server にすでに存在するリポジトリーからイメージをインポートすることができます。ローカルレジストリーを作成し、これにデータを設定する方法についての詳細は、「リポジトリーの管理」 を参照してください。 - Docker ハブ: Docker ハブレジストリーを検索して、そこからイメージをプルすることができます。検証済みのコンテンツを含む信頼されたイメージのみをプルするようにしてください。
- 外部レジストリー: 先に作成した外部レジストリーからイメージをインポートできます。レジストリーを Red Hat Satellite で作成する方法についての詳細は、「外部レジストリーのインポート」を参照してください。
注記
手順6.3 コンテナーを作成するには、以下を実行します。
- → に移動します。または、 → に移動して をクリックします。
- コンテナー作成の Preliminary ステージで、以下の設定を行います。
- ロケーション タブで、新規コンテナーを利用可能にするロケーションを選択します。
- 組織 タブで、新規コンテナーを利用可能にする組織を選択します。
をクリックして進みます。 - コンテナー作成の イメージ ステージでは、コンテナーのベースとして機能するイメージをインポートします。これは、プラットフォームイメージの場合も、先に作成したレイヤー化されたイメージである場合もあります。以下のいずれかのオプションから選択してください。
- コンテンツビュー タブを選択してイメージをライフサイクル環境からインポートします。ライフサイクル環境、コンテンツビュー、リポジトリー、タグおよび Capsule Server を指定します。
- Docker ハブ タブを選択し、Docker ハブレジストリーからイメージをインポートします。イメージ名を 検索 フィールドに入力すると、Satellite はコンピュートリソースを自動的に検索します。眼鏡 (Looking Glass) のアイコンをクリックして Docker ハブを検索します。検索結果の一覧からイメージを選択し、ドロップダウンリストからタグを選択します。
- 外部レジストリー タブを選択し、既存のレジストリーからイメージをインポートします。ドロップダウンメニューからレジストリーを選択し、イメージ名でこれを検索します。Satellite は タグ フィールドに、選択したイメージ名に使用できるタグを設定します。詳細は、「外部レジストリーのインポート」を参照してください。
をクリックして進みます。 - コンテナー作成の 設定 ステージでは、以下の設定を行います。
- コンテナー名を指定します。
- コンテナー内で実行するコマンドを指定します。
- コンテナーが起動するとすぐに実行されるコマンドのエントリーポイントを指定します。デフォルトのエントリーポイントは
/bin/sh -cです。 - CPU をコンテナーに割り当てます。たとえば、
0-2,16は CPU 0, 1, 2、および 16 を表します。 - コンテナーに使用できる CPU 時間の相対的配分を定義します。
- コンテナーのメモリー制限を指定します。たとえば、
512mにより、コンテナーのメモリー使用が 512 MB までに制限されます。
をクリックして進みます。 - 環境 というコンテナー作成の最終ステージでは、pseudo-tty を割り当てる必要があるかどうかを選択し、STDIN、STDOUT、および STDERR をコンテナーに割り当てます。 をクリックしてコンテナーのカスタム環境変数を作成します。Run? (実行?) チェックボックスを選択して作成後のコンテナーを自動的に開始します。
- をクリックしてコンテナーを作成します。
例6.1 Satellite での Red Hat Enterprise Linux コンテナーの作成
- 「外部レジストリーのインポート」 で説明されているようにカスタムレジストリーを作成します。registry.access.redhat.com をレジストリー URL として指定します。
- 「コンテナーの作成」 で説明されているように新規コンテナーを作成します。コンテナー作成の イメージ ステージで、外部レジストリー タブに移動し、直前の手順で作成されたレジストリーを選択します。検索フィールドを使用して Red Hat Enterprise Linux イメージの必要なバージョンを検索します。設定 および 環境 ステージに進み、コンテナーを完成します。
6.1.2. コンテナーのモニター
手順6.4 コンテナーを調査するには、以下を実行します。
- → に移動します。
- コンテナー ページでは、すべての Docker コンピュートリソースに専用タブが付けられています。これらのタブのそれぞれには、各コンテナーの選択されたパラメーターと共に利用可能なコンテナーの表が含まれています。検査するコンピュートリソースのタブを選択します。
- コンテナーのメタデータを表示するには、検査するコンテナーの名前をクリックします。Satellite ではコンテナーのプロパティーの表が表示されます。
- プロセス タブでは、コンテナー内で現在実行されているプロセスを表示できます。プロセス名をクリックしてそのプロセスのメタデータを表示します。
- コンテナーが実行されている場合、その標準出力を ログ タブで確認できます。コンテナーの作成時に pseudo-tty の割り当て チェックボックスを選択している場合、コンソールは対話的になります。そうでない場合は、コンテナーの開始時に生成される初期の標準出力が表示されます。
6.1.3. コンテナーの開始、コミットおよび削除
手順6.5 コンテナーを開始または停止するには、以下を実行します。
- → に移動し、利用可能なコンテナーの一覧を表示します。
- 開始するコンテナーの横にある をクリックします。コンテナーの開始後にボタンは に切り替わります。これにより、コンテナーを停止することができます。これらの操作は
docker startおよびdocker stopコマンドと同等です。
手順6.6 コンテナーをコミットするには、以下を実行します。
- → に移動し、利用可能なコンテナーの一覧を表示します。
- コミットするコンテナーの名前をクリックします。
- をクリックします。Satellite は以下を実行するようにプロンプトを出します。
- リポジトリー名を指定します。これには単一の名前や、または user/my-rhel-image などのようにユーザー名と組み合わせを指定できます。
- タグをイメージに割り当てます。
- 問い合わせ先情報を指定します。
- イメージ情報のコメントを入力します。
- をクリックします。
注記
手順6.7 コンテナーを削除するには、以下を実行します。
- → に移動し、利用可能なコンテナーの一覧を表示します。
- 削除するコンテナーの名前をクリックします。
- をクリックします。
- 警告ボックスで、 をクリックしてコンテナーを削除します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.