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 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-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?
Antworten:
Red Hat enthält einen Patch, der
docker
als "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.
quelle
yum
Befehle in Ihrem Docker-Build nicht angezeigt, oder das Docker-Image schlägt fehl.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-who
gibt, 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 :
Es gibt also entweder im Container oder im Daemon etwas, das den Host abfragen kann, um Abonnementinformationen zu finden (und wahrscheinlich auch Repo-Informationen).
quelle