Comment fonctionne Yum avec Red Hat Network Subscription dans les images rhel Docker?


10

Red Hat Enterprise Linux 7 inclut une prise en charge officielle pour l'exécution des conteneurs Docker, et Red Hat propose un ensemble d'images Docker rhel officielles. Une caractéristique intéressante de ces images est que les packages peuvent être installés via l'abonnement Red Hat Network de l'hôte sans avoir à effectuer de configuration dans le conteneur.

Pour citer https://access.redhat.com/articles/881893#createimage :

"Pour la version actuelle de Red Hat Docker, l'image Docker RHEL 7 par défaut que vous extrayez de Red Hat pourra tirer parti des droits RHEL 7 disponibles sur le système hôte. Ainsi, tant que votre hôte Docker est correctement abonné et que les référentiels sont si vous avez besoin d’obtenir le logiciel que vous souhaitez dans votre conteneur (et d’avoir accès à Internet depuis votre hôte Docker), vous devriez pouvoir installer des packages à partir des référentiels logiciels RHEL 7. "

Je crains que le mécanisme permettant d'atteindre cet objectif soit assez opaque. Lors du démarrage d'un nouveau conteneur avec l'image rhel7.1, par exemple, il est possible de s'exécuter yum install foosans même configurer les variables d'environnement du proxy http. Sans comprendre ce mécanisme, l'administrateur système est potentiellement à la merci d'interactions inconnues entre le système hôte, le démon Docker et les conteneurs en cours d'exécution. Cela suggère également que l'isolement normal entre l'hôte et le conteneur est en quelque sorte compromis (quoique de manière bénigne).

Pour mettre un point dessus: comment cette prise en charge de l'abonnement est-elle réalisée et dépend-elle de la construction personnalisée du démon Docker fournie par Red Hat via le réseau d'abonnement?



Merci @michael. Malheureusement, je n'ai pas accès à la réponse publiée sur ce site, car je n'ai pas personnellement de compte d'abonnement Red Hat. (Le compte utilisé par mon employeur est détenu par du personnel ailleurs dans l'organisation). Je verrai si une personne disposant de l'accès approprié dans l'organisation peut me fournir une copie de cette réponse KB.
Leynos

@michael vous devriez publier votre commentaire comme réponse à mon humble avis.
Bram

@MichaelHampton J'ai eu la chance de lire la réponse sur le site de Red Hat. Il peut être intéressant de noter dans toute réponse publiée ici que la fonctionnalité en question dépend de la version personnalisée de Red Hat du démon Docker.
Leynos

Réponses:


4

Red Hat transporte un correctif dockerappelé correctif «secrets» qui monte les informations de droits d'accès dans des conteneurs lorsqu'ils sont exécutés.

Vous pouvez voir une meilleure description du patch et un lien vers le PR en amont dans le dépôt projectatomic / docker :

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

Remarque, vous devrez sélectionner l'une des branches (le lien va à la branche 'docker-1.3.1-rhel') pour voir toutes les informations sur les correctifs transportés.


Et par conséquent, si vous utilisez Try to Docker CE (qui n'a pas ce chemin d'accès) plutôt que le Docker fourni par Red Hat, vous n'aurez pas les informations de droit et les yumcommandes dans votre build Docker ou l'image Docker échoueront?
Raedwald

2

En sachant comment les machines virtuelles gérées par Red Hat Satellite sont autorisées, et en partant du commentaire de @ Leynos, je m'attends à ce qu'il y ait quelque chose de similaire à virt-who, qui est un service qui parle à l'hôte de virtualisation (vSphere, KVM, etc.) et l'interroge sur trouver les détails des machines virtuelles. Il effectue ensuite les appels d'API nécessaires dans Satellite pour permettre à la machine virtuelle d'utiliser la licence de centre de données de l'hôte.

Je m'attendrais à ce que le démon Docker Red Hat fournisse quelque chose de similaire, permettant au conteneur de savoir qu'il s'exécute à partir d'un hôte Docker abonné et donc d'utiliser cet abonnement.

Aussi d' ici :

IMPORTANT: L'exécution de conteneurs avec la commande docker, comme décrit dans cette rubrique, ne nécessite pas spécifiquement d'enregistrer le système hôte atomique RHEL et de joindre un abonnement. Cependant, si vous souhaitez exécuter des commandes d'installation yum dans un conteneur, le conteneur doit obtenir des informations d'abonnement valides de l'hôte atomique RHEL ou il échouera.

Donc, il y a quelque chose dans le conteneur ou le démon qui peut interroger l'hôte pour trouver des informations d'abonnement (et probablement aussi des informations de repo).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.