14.6. コンテンツ配信サーバーの Docker コンテンツの管理
14.6.1. Red Hat Update Infrastructure の Docker コンテンツ リンクのコピーリンクがクリップボードにコピーされました!
Docker
コンテンツには、コンテナー、イメージ、およびプラットフォームイメージが含まれます。現時点で、docker
コンテンツには利用可能なエンタイトルメントの適用がありません。このような機能を準備するには、最初に docker
クライアントが X.509 証明書をサポートする必要があります。RHUI への影響は、ダウンロードまたは公開済みの docker
コンテンツが CDS のレジストリーで公開されていることです。
コンテナーはアプリケーションのサンドボックスです。各コンテナーは、必要な設定データを保持するイメージに基づいています。イメージからコンテナーを起動すると、書き込み可能な階層がこのイメージの上部に追加されます。コンテナーをコミットするたびに (docker commit
コマンドを使用)、変更を保存する新しいイメージ層が追加されます。
イメージは、変更されることのない読み取り専用レイヤーです。変更はすべて最上位の書き込み可能なレイヤーで行われ、新規イメージを作成することによってのみ保存できます。各イメージは、複数の親イメージに依存します。
プラットフォームイメージは、親のないイメージです。プラットフォームイメージは、コンテナー化されたアプリケーションの実行に必要なランタイム環境、パッケージ、およびユーティリティーを定義します。プラットフォームイメージは読み取り専用であるため、その上部にスタックされたコピーイメージに変更が反映されます。
14.6.2. Red Hat Update Infrastructure へのコンテナーの追加 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を実行して、RHUI
経由の Docker が使用されるクライアントマシンに Docker
コンテナーを追加します。docker
にアクセスするには、Red Hat Enterprise Linux Extras
リポジトリーへのアクセスが必要です。
以前のリリースでは、RHUI は常に registry.access.redhat.com
からコンテナーを同期していました。バージョン 3.1.3 以降では、RHUI は registry.redhat.io
をデフォルトのオプションとして使用しますが、Quay.io
などの他のレジストリーからコンテナーを同期することもできます。
レジストリーは、多くの場合、すべてのコンテナーまたはプライベートコンテナーに認証を必要とします。registry.redhat.io
の場合、Red Hat の認証情報または レジストリーサービスアカウント の認証情報は常に使用する必要があります。RHUI は、コンテナーを同期できるようにするために有効な資格情報を必要とします。RHUI に認証情報を提供する方法には、どちらも以下の手順で説明されています。
手順
- クライアントを登録し、4章Red Hat Update Infrastructure の登録およびサブスクリプションの割り当て の手順を使用してサブスクリプションを取得します。
または、Subscription Management ツールを使用してシステムを登録し、
docker
パッケージをインストールすることもできます。必要なソフトウェアリポジトリーも有効にします。(pool_id
を、RHEL 7 サブスクリプションのプール ID に置き換えます。) 以下に例を示します。subscription-manager register --username=rhnuser --password=rhnpasswd subscription-manager list --available Find valid RHEL pool ID subscription-manager attach --pool=pool_id subscription-manager repos --enable=rhel-7-server-extras-rpms subscription-manager repos --enable=rhel-7-server-optional-rpms
# subscription-manager register --username=rhnuser --password=rhnpasswd # subscription-manager list --available Find valid RHEL pool ID # subscription-manager attach --pool=pool_id # subscription-manager repos --enable=rhel-7-server-extras-rpms # subscription-manager repos --enable=rhel-7-server-optional-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在の RHEL 7 リリースおよび RHEL 7 Atomic Host リリースにはそれぞれ Docker の異なるバージョンが含まれます。
-
docker
: このパッケージには、RHEL の現在のリリースのデフォルトである Docker のバージョンが含まれます。Red Hat Enterprise Linux で利用可能な Kubernetes および OpenShift の現行バージョンと互換性があるより安定したバージョンの Docker が必要な場合は、このパッケージをインストールします。 docker-latest
: このパッケージには、新しいバージョンの Docker が含まれており、Docker の新機能と連携する場合に使用できます。このバージョンは、Red Hat Enterprise Linux の現在のリリースで利用可能な Kubernetes および OpenShift のバージョンと互換性がありません。docker
パッケージおよびdocker-latest
パッケージの内容とdocker-latest
パッケージを有効にする方法は、Red Hat Enterprise Linux リリースノート の Atomic Host および Containers セクションを参照してください。
-
デフォルトの
docker
パッケージをインストールして使用します (まだインストールされていない場合は、いくつかの依存パッケージも一緒にインストールします)。yum install docker device-mapper-libs device-mapper-event-libs
# yum install docker device-mapper-libs device-mapper-event-libs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Docker および Red Hat Enterprise Linux および Atomic Host の詳細は、Getting Started with Containers のセクション 1.3 Docker および Red Hat Enterprise Linux および Atomic Host の詳細は、Getting Started with Containers の Getting Started with Containers を参照してください。
必要に応じて、RHUI 設定でコンテナーレジストリーの認証情報を設定します。これを行うには、
/etc/rhui/rhui-tools.conf
ファイルを編集します。RHUI 3.1.3 以降をクリーンインストールしている場合、最後の数行には、docker 固有のオプションと便利なコメントが含まれる [docker] セクションが含まれます。以前のバージョンから更新した場合、このセクションは/etc/rhui/rhui-tools.conf.rpmnew
ファイルの最後にあり、rhui-tools.conf
ファイルにコピーできます。次のように、docker セクションの行のコメントを解除します。[docker] … docker_username: your_RH_login docker_password: your_RH_password
[docker] … docker_username: your_RH_login docker_password: your_RH_password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通常、registry.redhat.io とは異なる
レジストリー
から同期する場合は、それに応じてdocker_url
オプションとdocker_auth
オプションの値も変更します。または、設定ファイルにパスワードを表示したくない場合は、
docker_password
でコメントアウトされた行をコメントにしたまま、ログインのみを設定します。次に、新規コンテナーを追加するときに手動でパスワードを入力します。Red Hat Update Infrastructure Management Tool から、
r
を押して Repository Management 画面にアクセスします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ad
を押して、新しい Red Hat docker コンテナーを追加します。rhui (repo) => ad Enter the URL of the registry, for example http://registry.redhat.io
rhui (repo) => ad Enter the URL of the registry, for example http://registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
上記のコンテナーがデフォルト以外のレジストリーにある場合は、レジストリー URL を入力します。デフォルトのレジストリーを使用するには、何も入力せずに
Enter
キーを押します。 レジストリーにコンテナーの名前を入力します。
jboss-eap-6/eap64-openshift
jboss-eap-6/eap64-openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーの一意の ID を入力します。
注記hui-manager
は、コンテナーの名前をレジストリーからPulp
で使用できる形式に変換できます。これは、スラッシュとドットをアンダースコアに置き換えて行います。このような変換名を許可するには、Enter
を押すか、または任意の名前を入力します。jboss-eap-6_eap64-openshift
jboss-eap-6_eap64-openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンテナーの表示名を入力します。
- RHUI 設定でログインまたはパスワードを設定していない場合は、プロンプトが表示される場合があります。続行するのに必要な情報を入力します。
概要が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow y
を押して続行するか、n
を押してキャンセルします。y Successfully added container JBoss_EAP_Container
y Successfully added container JBoss_EAP_Container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
^
を押して、Red Hat Update Infrastructure Management Tool のホーム画面に戻ります。
間違った認証情報を使用すると、コンテナーは追加されますが、同期することができません。この場合、コンテナーを RHUI から削除し、正しい認証情報で再び追加します。
認証情報は、RHUI に追加する各コンテナーのメタデータとして保存されます。パスワードを変更すると、資格情報が無効になり、コンテナーの同期を継続できなくなります。コンテナーのメタデータのパスワードを変更するには、RHUA ノードの次のコマンドを使用して MongoDB
でパスワードを変更します。
mongo pulp_database --eval 'db.repo_importers.update({"config.basic_auth_password":"YOUR_OLD_PASSWORD"}, {$set:{config:{basic_auth_password:"YOUR_NEW_PASSWORD"}}}, {multi:true})'
# mongo pulp_database --eval 'db.repo_importers.update({"config.basic_auth_password":"YOUR_OLD_PASSWORD"}, {$set:{config:{basic_auth_password:"YOUR_NEW_PASSWORD"}}}, {multi:true})'
または、RHUI から影響を受けるコンテナーをすべて削除し、新しいパスワードで再び追加します。
パスワードを変更するとき、古いパスワードを持っている場合は、/etc/rhui/rhui-tools.conf
ファイルでパスワードを変更することを忘れないでください。
14.6.3. Docker リポジトリーの同期 リンクのコピーリンクがクリップボードにコピーされました!
手順
-
s
を押して、Synchronization Status 画面にアクセスします。 -
sr
を押して、個々のリポジトリーを即時に同期します。 - 同期するリポジトリーの数を入力します。
-
c
を押して選択を確認します。他のコマンドの場合は?
と入力します。 y
を押して続行するか、n
を押してキャンセルします。The following repositories will be scheduled for synchronization: jboss-eap-6_eap64-openshift Proceed? (y/n) y Scheduling sync for jboss-eap-6_eap64-openshift... ... successfully scheduled for the next available timeslot.
The following repositories will be scheduled for synchronization: jboss-eap-6_eap64-openshift Proceed? (y/n) y Scheduling sync for jboss-eap-6_eap64-openshift... ... successfully scheduled for the next available timeslot.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
^
を押して、Red Hat Update Infrastructure Management Tool のホーム画面に戻ります。
14.6.4. Docker クライアント設定の生成 リンクのコピーリンクがクリップボードにコピーされました!
クライアント設定 RPM は、RHUI から docker
コンテナーをプルする必要のある RHUI クライアントを対象としています。RPM にはロードバランサーの証明書が含まれます。RPM をインストールする際に、以下を行います。
- ロードバランサーを docker レジストリーとして追加します。
- docker 設定を変更します。
手順
-
e
を押して Client Entitlement Management 画面にアクセスします。 -
d
を押してdocker
クライアント設定 RPM を作成します。 生成されるクライアント設定ファイルを保存するローカルディレクトリーへの完全パスを入力します。このディレクトリーが存在しない場合は作成されます。
/root/
/root/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RPM の名前を入力します。
dockertest
dockertest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
設定 RPM のバージョン番号を入力します。デフォルトは
2.0
です。 -
設定 RPM のリリース番号を入力します。デフォルトは
1
です。 Docker コンテンツを提供するポートを入力します。デフォルトは
5000
です。Successfully created client configuration RPM. Location: /root/dockertest-2.0/build/RPMS/noarch/dockertest-2.0-1.noarch.rpm
Successfully created client configuration RPM. Location: /root/dockertest-2.0/build/RPMS/noarch/dockertest-2.0-1.noarch.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.6.5. クライアントへの RPM のインストール リンクのコピーリンクがクリップボードにコピーされました!
手順
RPM が保存されるディレクトリーに移動します。
cd /root/dockertest-2.0/build/RPMS/noarch/
[root@rhua noarch]# cd /root/dockertest-2.0/build/RPMS/noarch/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RPM をクライアントにコピーします。
scp dockertest-2.0-1.noarch.rpm <hostname_of_cli:path_on_cli>
# scp dockertest-2.0-1.noarch.rpm <hostname_of_cli:path_on_cli>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントに切り替え、RPM をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.6.6. クライアントでの docker pull コマンドのテスト リンクのコピーリンクがクリップボードにコピーされました!
docker pull
コマンドは、コンテナーのコンテンツを使用します。以下の手順では、クライアントで docker pull
コマンドをテストする方法を説明します。
手順
docker
サービスを開始します。systemctl start docker
[root@cli01 ~]# systemctl start docker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow docker pull
コマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow docker pull
コマンドが失敗した場合は、rhui-manager container synchronization
ステータスを確認します。同期がまだ実行されていない可能性があり、同期するまで待機する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow