0
votes

Comment empêcher Docker d'attribuer de nouveaux noms d'hôte aux nouveaux conteneurs?

J'ai un dockerfile qui exécutera un script PS pour modifier le nom d'hôte du conteneur. Mais lorsque j'utilise "Docker Run" pour démarrer un nouveau conteneur à partir de cette image, le nom d'hôte du conteneur est de retour à l'ID du conteneur. Le script fonctionne de l'intérieur du conteneur. Je souhaite que le nom d'hôte reste corrigé sur ce que le script a changé pendant la phase de construction.

J'ai essayé d'exécuter le script à partir du conteneur et que le script fonctionne bien. Le nom d'hôte de conteneur est modifié sans aucune erreur. Mais exécuter un conteneur à partir de cette image écrase le nom d'hôte. xxx

Je pense que le nom d'hôte de conteneur reste fixé à partir de la phase de construction. La sortie actuelle est que Docker change le nom d'hôte à l'ID du conteneur.


0 commentaires

3 Réponses :




1
votes

Il existe de nombreux attributs d'un conteneur Docker qui ne sont définis que au moment de l'exécution. Celles-ci incluent la plupart des ports publiés et des supports de volume, mais il existe également plusieurs autres détails qui ne sont définis que sur docker exécuter heure. Compatible, rien que vous ne le faites dans le dockerfile affectera un nom d'hôte de conteneur d'exécution: il est toujours défini par l'option Docker Exécuter --HostName

(également dans cet espace, une image Docker n'a jamais de sorte de configuration de réseautage ni de processus d'arrière-plan en cours d'exécution)

Dans la plupart des cas, vous ne vous souciez pas de ce qu'un conteneur pense que son propre nom d'hôte est. Réglage du nom d'hôte n'affecte pas comment les autres conteneurs sont capables d'atteindre le conteneur ou quoi que ce soit d'autre en dehors du conteneur, et la plupart des programmes ne prennent pas la peine de vérifier leur propre nom d'hôte. (Que devrait-il arriver si vous Docker Run --HostName = Stackoverflow.com ?)

Si vous devez définir le nom d'hôte, vous devez la définir à l'heure de lancement du conteneur, que ce soit avec l'option docker exécuter - hostname ou le docker composez nom d'hôte: option (ou une option similaire pour un orchestrateur différent).


1 commentaires

L'exigence est que j'ai besoin d'installer un outil particulier qui est liée à la licence avec ce nom d'hôte. Donc, je pensais à utiliser la commande d'exécution pour changer le nom d'hôte et installer l'outil sur le même calque. Avez-vous une meilleure solution? La solution idéale serait de corriger le nom d'hôte du système d'exploitation du conteneur pendant la phase de construction d'image elle-même.