第12章 コンテナーのプロビジョニング


コンテナー化とは、複数の分離したユーザースペースのインスタンスを提供するためにオペレーティングシステムのカーネルを使用する仮想化メソッドです。Docker とは、Linux コンテナー内のアプリケーションのデプロイメントを自動化するオープンソースプロジェクトであり、アプリケーションとその実行時の依存関係をコンテナーにパッケージ化する機能を提供します。Linux コンテナーは、セキュリティーを強化しつつ、迅速なアプリケーションのデプロイメントを可能にし、テスト、メンテナンスおよびトラブルシューティングを単純化します。

Red Hat Enterprise Linux Atomic Host は、Linux コンテナーの実行のために最適化された安全、軽量で、フットプリントを最小限に抑えたオペレーティングシステムです。Red Hat Satellite 6 は、Red Hat Enterprise Linux Atomic Host および他の Docker ベースのサーバーに接続する機能を提供します。これには、イメージからの新規コンテナーの作成が含まれます。本章では、接続を ACME の Red Hat Enterprise Linux Atomic Host に追加し、コンテナーをプロビジョニングします。

12.1. コンテナープロビジョニングの要件定義

Red Hat Enterprise Linux Atomic Host のプロビジョニングの要件には、以下が含まれます。

  • Docker レジストリーなどのイメージのソース。Red Hat Satellite 6 はコンテナーイメージの 3 つのソースを使用します。

    • Satellite Server のアプリケーションライフサイクルの一部である同期した Docker イメージ。
    • Docker ハブからのパブリックイメージ。
    • Red Hat のコンテナーイメージのレジストリーを含む他の外部レジストリー。これは、「外部レジストリーの Satellite Server への追加」 で説明されています。

12.2. Red Hat Enterprise Linux Atomic Host の設定

Atomic Host では Satellite に追加する前に一部の設定が必要になります。これには、Docker API の Satellite Server への公開が含まれます。

Atomic Host にログインし、/etc/sysconfig/docker ファイルを編集します。

$ vi /etc/sysconfig/docker

OPTIONS パラメーターを見つけ、API を公開するように編集します。

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

接続にポート 2375 または 2376 のいずれかを使用します。Satellite Server には、これらのポートへのアクセスを可能にする特殊な SELinux ルールが含まれるためです。他のポートを使用すると、認証が失敗します。

Satellite Server 証明書をインポートします。

$ curl http://satellite.example.com/pub/katello-server-ca.crt -o /etc/pki/ca-trust/source/anchors/katello-server-ca.crt
update-ca-trust

docker サービスを再起動します。

$ systemctl restart docker

ポートが公開されていること確認します。

$ netstat -tulnp | grep 2375

12.3. Atomic Host 接続の Satellite Server への追加

このプロセスでは、Satellite Server のコンピュートリソースで Red Hat Enterprise Linux Atomic 接続を追加します。

Web UI を使用する場合

インフラストラクチャー > コンピュートリソース に移動し、新規のコンピュートリソース をクリックします。UI には、コンピュートリソースの一連のフィールドがあります。

  • 名前: リソースのテキスト形式の名前。例: ACME's Atomic
  • プロバイダー: コンピュートリソースプロバイダーを選択するためのフィールド。Docker を選択すると、新規のフィールドのセットが表示されます。
  • 説明: リソースのテキスト形式の説明。例: ACME's Atomic Host at atomic.example.com
  • URL: Atomic Host の Docker API をポイントする URL。例: http://atomic.example.com:2375
  • ユーザー名パスワードEmail (電子メール): Docker ハブの認証の詳細。Satellite Server はこれらの詳細を使用して、Atomic Host に Docker ハブからイメージをダウンロードさせます。これらの詳細は、パブリックイメージまたは Satellite Server で管理されているイメージを使用している場合は不要です。

ロケーション および 組織 タブは現在のコンテキストに自動的に設定されます。他のコンテキストをこれらのタブに追加します。

送信 をクリックして Red Hat OpenStack Platform の接続を保存します。

CLI を使用する場合

hammer compute-resource create コマンドで接続を作成します。

# hammer compute-resource create --provider docker --name "ACME's Atomic" --url "http://atomic.example.com:2375" --organizations 'Default Organization' --locations 'Default Location'

12.4. 外部レジストリーの Satellite Server への追加

Red Hat Satellite 6 コンテンツ管理ガイド では、Red Hat Satellite 6 でコンテンツビューを使って Docker イメージを同期し、それらを管理する方法を説明しています。ただし、外部レジストリーへのアクセスのみが必要で、コンテンツを同期する必要がないケースもあります。Red Hat Satellite 6 は外部 Docker レジストリーを追加する機能を提供します。

Web UI を使用する場合

コンテナー > レジストリー に移動し、新規レジストリー (New Registry) をクリックします。UI には、新規レジストリーの一連のフィールドが表示されます。

  • 名前: レジストリーのテキスト形式の名前。例: Red Hat
  • URL: レジストリーの場所。例: https://registry.access.redhat.com
  • 説明: レジストリーのテキスト形式の説明。例: Red Hat Docker Image Registry
  • ユーザー名 および パスワード: プライベートレジストリーの認証の詳細。

ロケーション および 組織 タブは現在のコンテキストに自動的に設定されます。他のコンテキストをこれらのタブに追加します。

送信 をクリックして外部レジストリーを保存します。

CLI を使用する場合

hammer docker registry create コマンドを使用してレジストリーを作成します。

# hammer docker registry create --name "Red Hat" --url "https://registry.access.redhat.com" --description "Red Hat Docker Image Registry"

12.5. Satellite Server でのコンテナーの作成

コンテナーのプロビジョニングプロセスは、標準のホスト作成プロセスとは異なります。コンテナーの作成は、ホスト > 新規ホスト メニューからではなく、コンテナー > 新規コンテナー オプションを使用します。

Web UI を使用する場合

コンテナー > 新規コンテナー に移動します。UI には、コンテナーの作成ウィザードが表示されます。

Preliminary (事前)

このセクションでは、使用する Atomic Host とプロビジョニングコンテキストを定義します。

  • Docker コンピュートリソースを選択します。例: "ACME’s Atomic"
  • プロビジョニングコンテキスト (組織 および ロケーション) は現在のコンテキストに自動的に設定されます。例: ACME および New York
イメージ

このセクションでは、以下の 3 つの方法を含むイメージの選択方法が提供されます。

  • コンテンツビュー: Satellite Server のアプリケーションライフサイクルからイメージを選択します。ライフサイクル環境コンテンツビューリポジトリー、Docker タグ および Docker コンテンツを含む Capsule Server を選択します。
  • Docker ハブ: Docker ハブでの Docker イメージの検索機能を提供します。検索 キーワードを入力し、虫眼鏡アイコンをクリックすると、イメージの一覧が表示されます。イメージを選択し、イメージの タグ を選択します。
  • 外部レジストリー: 外部 Docker レジストリーでの Docker イメージの検索機能を提供します。検索 キーワードを入力し、虫眼鏡アイコンをクリックすると、イメージの一覧が表示されます。イメージを選択し、イメージの タグ を選択します。
設定

このセクションでは、コンテナーの初期設定を提供します。

  • 基本オプション:

    • コンテナーの 名前 を入力します。
    • コンテナーで実行する コマンド を入力します。
    • エントリーポイント を入力します。デフォルトは /bin/sh -c です。
  • コンピュートオプション:

    • 個別の CPU を割り当てる CPU セット を入力します。
    • コンテナー化されたタスクで利用できる CPU 時間のシェアを設定する CPU シェア を入力します。
    • コンテナーのメモリー使用の割り当てに使用する メモリー の容量を入力します。
環境

このセクションでは、コンテナーの実行時に使用する Atomic Host の設定を提供します。

  • 環境変数: 環境変数のセットを定義できます。例: LANG=en_US.UTF-8
  • Exposed Ports (公開されたポート): コンテナーでポートを開きます。たとえば、ポート 22 のコンテナーへの SSH 通信を開きます。
  • DNS: コンテナーの DNS サーバーを入力します。
  • Run? (実行しますか?): 作成後にコンテナーを実行するかどうかを選択します。
  • シェル: TTY コンソールおよび標準ストリームを含むシェルのオプションを提供します (STDINSTDOUT、および STDERR)。

ウィザードですべてのオプションを完了した後に、送信 をクリックします。

CLI を使用する場合

以下は、hammer docker container create コマンドを使用した 3 つの例です。まず、コンテンツビューからコンテナーを作成します。

# hammer docker container create --compute-resource "ACME's Atomic" --repository-name "rhel7" --tag "latest" --name "docker-test1" --command "bash" --organizations "ACME" --locations "New York"

次に Docker ハブからプロビジョニングを実行します。

# hammer docker container create --compute-resource "ACME's Atomic" --repository-name "docker.io/fedora" --tag latest --name "docker-test2" --command bash --organizations "ACME" --locations "New York"

最後に、外部レジストリーからプロビジョニングを実行します。

# hammer docker container create --compute-resource "ACME's Atomic" --registry-id 1 --repository-name "rhel" --tag latest --name "docker-test3 --command bash --organizations "ACME" --locations "New York"

これにより、選択されたイメージから新規コンテナーが作成され、選択された Red Hat Enterprise Linux Atomic Host で実行されます。

12.6. 章の概要

本章では、Red Hat Enterprise Linux Atomic Host を追加し、管理するよう Red Hat Satellite 6 を設定する方法と Atomic Host でコンテナーをプロビジョニングする方法を説明しました。

ここまでで、本書のすべてのプロビジョニングシナリオを扱いました。13章プロビジョニングの最終設定 でプロビジョニングについての最終メモを参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.