![Wie funktioniert Yum mit Red Hat Network Subscription innerhalb der Rhel Docker-Images?](https://rvso.com/image/668786/Wie%20funktioniert%20Yum%20mit%20Red%20Hat%20Network%20Subscription%20innerhalb%20der%20Rhel%20Docker-Images%3F.png)
Red Hat Enterprise Linux 7 bietet offiziellen Support für die Ausführung von Docker-Containern und Red Hat bietet eine Reihe offizieller Rhel-Docker-Images an. Ein interessantes Feature dieser Images ist, dass Pakete über das Red Hat Network-Abonnement des Hosts installiert werden können, ohne dass eine Konfiguration innerhalb des Containers durchgeführt werden muss.
Zitierenhttps://access.redhat.com/articles/881893#createimage:
„Für die aktuelle Red Hat Docker-Version kann das standardmäßige RHEL 7-Docker-Image, das Sie von Red Hat abrufen, auf RHEL 7-Berechtigungen zurückgreifen, die auf dem Hostsystem verfügbar sind. Solange Ihr Docker-Host also ordnungsgemäß abonniert ist und die Repositories aktiviert sind, die Sie benötigen, um die gewünschte Software in Ihrem Container zu erhalten (und über Internetzugang von Ihrem Docker-Host aus verfügen), sollten Sie in der Lage sein, Pakete aus RHEL 7-Software-Repositories zu installieren.“
Meine Sorge ist, dass der Mechanismus, mit dem dies erreicht wird, ziemlich undurchsichtig ist. Wenn Sie beispielsweise einen neuen Container mit dem Rhel7.1-Image starten, ist es möglich, ihn auszuführen, yum install foo
ohne die Umgebungsvariablen des HTTP-Proxys zu konfigurieren. Ohne diesen Mechanismus zu verstehen, ist der Systemadministrator möglicherweise unbekannten Interaktionen zwischen dem Hostsystem, dem Docker-Daemon und laufenden Containern ausgeliefert. Dies deutet auch darauf hin, dass die normale Isolation zwischen Host und Container in gewisser Weise beeinträchtigt ist (wenn auch auf harmlose Weise).
Um es auf den Punkt zu bringen: Wie wird diese Abonnementunterstützung erreicht und ist sie abhängig vom benutzerdefinierten Build des Docker-Daemons, der von Red Hat über das Abonnementnetzwerk bereitgestellt wird?
Antwort1
Red Hat stellt einen Patch mit der docker
Bezeichnung „Secrets“-Patch bereit, der die Berechtigungsinformationen beim Ausführen in Container einbindet.
Eine genauere Beschreibung des Patches und einen Link zum Upstream-PR finden Sie imProjektatomic/DockerRepository:
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 enthaltenen Patchinformationen anzuzeigen.
Antwort2
Da ich weiß, wie von Red Hat Satellite verwaltete virtuelle Maschinen lizenziert werden, und wenn ich mich an @Leynos' Kommentar halte, würde ich erwarten, dass es etwas Ähnliches wie gibt. virt-who
Dabei handelt es sich um einen Dienst, der mit dem Virtualisierungshost (vSphere, KVM usw.) kommuniziert und ihn abfragt, um Details zu VMs zu finden. Anschließend führt er die erforderlichen API-Aufrufe in Satellite aus, damit die VM die Rechenzentrumslizenz des Hosts verwenden kann.
Ich würde erwarten, dass der Docker-Daemon von Red Hat etwas Ähnliches bereitstellt, sodass der Container erkennt, dass er von einem abonnierten Docker-Host ausgeführt wird, und dieses Abonnement daher nutzen kann.
Auch vonHier:
WICHTIG: Wenn Sie Container mit dem Docker-Befehl ausführen, wie in diesem Thema beschrieben, müssen Sie das RHEL Atomic Host-System nicht unbedingt registrieren und ein Abonnement anhängen. Wenn Sie jedoch Yum-Install-Befehle innerhalb eines Containers ausführen möchten, muss der Container gültige Abonnementinformationen vom RHEL Atomic Host abrufen, sonst schlägt er fehl.
Es gibt also entweder im Container oder im Daemon etwas, das den Host abfragen kann, um Abonnementinformationen (und wahrscheinlich auch Repo-Informationen) zu finden.