Red Hat Network Subscriptionでのyumは、rhel Dockerイメージ内でどのように機能しますか?


10

Red Hat Enterprise Linux 7には、Dockerコンテナーの実行に対する公式サポートが含まれており、Red Hatは一連の公式rhel Dockerイメージを提供しています。これらのイメージの興味深い機能は、コンテナー内で構成を実行する必要なく、ホストのRed Hat Networkサブスクリプションを介してパッケージをインストールできることです。

https://access.redhat.com/articles/881893#createimageを引用するには:

「現在のRed Hat Dockerリリースでは、Red HatからプルしたデフォルトのRHEL 7 Dockerイメージは、ホストシステムから利用可能なRHEL 7エンタイトルメントを利用できます。したがって、Dockerホストが適切にサブスクライブされてお​​り、リポジトリがコンテナーに必要なソフトウェアを取得する必要があり(かつDockerホストからインターネットにアクセスできる必要がある場合)、RHEL 7ソフトウェアリポジトリからパッケージをインストールできるはずです。」

私の懸念は、これが達成されるメカニズムがかなり不透明であることです。たとえば、rhel7.1イメージで新しいコンテナーを開始する場合yum install foo、httpプロキシ環境変数を設定しなくても実行できます。このメカニズムを理解していないと、システム管理者は、ホストシステム、Dockerデーモン、および実行中のコンテナー間の未知の相互作用に翻弄される可能性があります。これは、ホストとコンテナの間の通常の分離が何らかの方法で損なわれていることも示唆しています(ただし、害のない方法で)。

要点を述べると、このサブスクリプションサポートはどのように実現されますか。また、サブスクリプションネットワークを介してRed Hatが提供するDockerデーモンのカスタムビルドに依存していますか?



@michaelに感謝します。残念ながら、私は個人的にはRed Hatサブスクリプションアカウントを持っていないので、そのサイトに投稿された回答にアクセスできません。(私の雇用主が使用するアカウントは、組織の他の場所にいるスタッフによって保持されています)。組織内で関連するアクセス権を持つ誰かがこのKB回答のコピーを提供してくれるかどうかを確認します。
Leynos、2015年

@michaelあなたはコメントを答えとして投稿できます。
Bram

@MichaelHampton Red Hatのサイトで答えを読む機会がありました。ここに投稿された回答で注目すべきは、問題の機能がDockerデーモンのRed Hatのカスタムバージョンに依存していることです。
Leynos、2015年

回答:


4

Red Hatはdocker、「秘密」パッチと呼ばれるパッチを実行します。これは、実行時にエンタイトルメント情報をコンテナにマウントします。

あなたは、projectatomic / docker repoでパッチのより良い説明と上流のPRへのリンクを見ることができます:

https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch

運ばれたすべてのパッチ情報を表示するには、ブランチの1つを選択する必要があります(リンクは「docker-1.3.1-rhel」ブランチに移動します)。


そのため、Red Hatが提供するDockerではなく、try to Docker CE(そのパスがない)を使用するとyum、DockerビルドまたはDockerイメージ内の資格情報とコマンドが失敗しますか?
Raedwald

2

Red Hat Satelliteで管理されている仮想マシンのライセンス方法を知っており、@ Leynosのコメントから離れるvirt-whoと、仮想化ホスト(vSphere、KVMなど)と通信してそれに対してクエリを実行するサービスであるVMの詳細を検索します。次に、サテライトで必要なAPI呼び出しを実行して、VMがホストのデータセンターライセンスを使用できるようにします。

Red Hatのdockerデーモンが同様の機能を提供し、コンテナーがサブスクライブされたDockerホストから実行されていることをコンテナーに認識させ、そのサブスクリプションを利用できるようになると思います。

ここからも:

重要:このトピックで説明するように、dockerコマンドでコンテナーを実行する場合、RHEL Atomic Hostシステムを登録してサブスクリプションをアタッチする必要はありません。ただし、コンテナー内でyum installコマンドを実行する場合は、コンテナーがRHEL Atomic Hostから有効なサブスクリプション情報を取得する必要があります。そうでない場合、コンテナーは失敗します。

そのため、コンテナまたはデーモンのいずれかに、サブスクリプション情報を見つけるためにホストにクエリを実行できるものがあります(おそらくレポ情報も同様です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.