Wie funktioniert yum mit Red Hat Network Subscription in den rhel Docker-Images?


10

Red Hat Enterprise Linux 7 bietet offizielle Unterstützung für das Ausführen von Docker-Containern, und Red Hat bietet eine Reihe offizieller Rhel-Docker-Images. Ein interessantes Merkmal dieser Images ist, dass Pakete über das Red Hat Network-Abonnement des Hosts installiert werden können, ohne dass eine Konfiguration innerhalb des Containers vorgenommen werden muss.

So zitieren Sie https://access.redhat.com/articles/881893#createimage :

"Für die aktuelle Red Hat Docker-Version kann das Standard-RHEL 7 Docker-Image, das Sie von Red Hat abrufen, auf RHEL 7-Berechtigungen zurückgreifen, die vom Hostsystem verfügbar sind. Solange Ihr Docker-Host ordnungsgemäß abonniert ist und die Repositorys vorhanden sind Wenn Sie die gewünschte Software in Ihrem Container benötigen (und über einen Internetzugang von Ihrem Docker-Host aus verfügen), sollten Sie in der Lage sein, Pakete aus RHEL 7-Software-Repositorys zu installieren. "

Ich mache mir Sorgen, dass der Mechanismus, mit dem dies erreicht wird, ziemlich undurchsichtig ist. Wenn Sie beispielsweise einen neuen Container mit dem Image rhel7.1 starten, können Sie ihn ausführen, yum install fooohne die Umgebungsvariablen des http-Proxys zu konfigurieren. Ohne diesen Mechanismus zu verstehen, ist der Systemadministrator möglicherweise unbekannten Interaktionen zwischen dem Hostsystem, dem Docker-Dämon und laufenden Containern ausgeliefert. Dies deutet auch darauf hin, dass die normale Isolation zwischen Host und Container in irgendeiner Weise beeinträchtigt ist (wenn auch auf harmlose Weise).

Um es auf den Punkt zu bringen: Wie wird diese Abonnementunterstützung erreicht und hängt sie von der benutzerdefinierten Erstellung des Docker-Dämons ab, der von Red Hat über das Abonnement-Netzwerk bereitgestellt wird?



Danke @michael. Leider habe ich keinen Zugriff auf die auf dieser Website veröffentlichte Antwort, da ich persönlich kein Red Hat-Abonnementkonto habe. (Das Konto, das mein Arbeitgeber verwendet, wird von Mitarbeitern an anderer Stelle in der Organisation geführt.) Ich werde sehen, ob mir jemand mit dem entsprechenden Zugriff in der Organisation eine Kopie dieser KB-Antwort zur Verfügung stellen kann.
Leynos

@michael du solltest deinen Kommentar als Antwort imho posten.
Bram

@MichaelHampton Ich hatte die Gelegenheit, die Antwort auf der Red Hat-Website zu lesen. In jeder hier veröffentlichten Antwort kann darauf hingewiesen werden, dass die betreffende Funktionalität von der benutzerdefinierten Version des Docker-Dämons von Red Hat abhängt.
Leynos

Antworten:


4

Red Hat enthält einen Patch, der dockerals "Geheimnisse" -Patch bezeichnet wird und die Berechtigungsinformationen in Containern bereitstellt, wenn sie ausgeführt werden.

Eine bessere Beschreibung des Patches und einen Link zum Upstream-PR finden Sie im Projektatom / Docker- Repo:

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

Beachten Sie, dass Sie einen der Zweige auswählen müssen (der Link führt zum Zweig 'docker-1.3.1-rhel'), um alle übertragenen Patch-Informationen anzuzeigen.


Wenn Sie also versuchen, Docker CE (das diesen Pfad nicht hat) anstelle des von Red Hat bereitgestellten Docker zu verwenden, werden die Berechtigungsinformationen und yumBefehle in Ihrem Docker-Build nicht angezeigt, oder das Docker-Image schlägt fehl.
Raedwald

2

Wenn ich weiß, wie von Red Hat Satellite verwaltete virtuelle Maschinen lizenziert sind, und wenn ich den Kommentar von @ Leynos verlasse, würde ich erwarten, dass es etwas Ähnliches virt-whogibt, nämlich einen Dienst, der mit dem Virtualisierungshost (vSphere, KVM usw.) kommuniziert und ihn abfragt Details zu VMs finden. Anschließend werden die erforderlichen API-Aufrufe in Satellite ausgeführt, damit die VM die Rechenzentrumslizenz des Hosts verwenden kann.

Ich würde erwarten, dass der Red Hat Docker-Daemon etwas Ähnliches bietet, sodass der Container weiß, dass er von einem abonnierten Docker-Host ausgeführt wird, und daher dieses Abonnement verwendet.

Auch von hier :

WICHTIG: Um Container mit dem Docker-Befehl auszuführen, wie in diesem Thema beschrieben, müssen Sie das RHEL Atomic Host-System nicht speziell registrieren und ein Abonnement anhängen. Wenn Sie jedoch yum install-Befehle in einem Container ausführen möchten, muss der Container gültige Abonnementinformationen vom RHEL Atomic Host erhalten, da dies sonst fehlschlägt.

Es gibt also entweder im Container oder im Daemon etwas, das den Host abfragen kann, um Abonnementinformationen zu finden (und wahrscheinlich auch Repo-Informationen).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.