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. P> 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. P> p>
3 Réponses :
Vous devriez essayer Ajouter Aussi, lisez que a >. p> - nom = signification_name code> à la commande
docker exécuter code>. p>
Le --Name AG définit le nom du conteneur, pas le nom d'hôte du conteneur lui-même. De plus, je cherche un moyen de corriger le nom d'hôte lors de la phase de construction d'images Docker lui-même.
Ajouter le Docker-Fichier Code> Container_Name Valeur
db:
image: mysql:5.7
container_name: mycontainername
hostname: myhostname
networks:
default:
aliases:
myalias
De cette façon, le nom d'hôte sera défini lors de l'exécution du conteneur. Je veux que le nom d'hôte soit défini pendant la phase de construction d'images.
Duplication possible de Stackoverflow.com/Questtions/28898787/...
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 (é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) P>
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 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 code> 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 Absent ceci, il est défini sur l'ID de conteneur Hex. p>
Docker Run --HostName = Stackoverflow.com code>?) P>
docker exécuter - hostname code> ou le docker composez
nom d'hôte: code> option (ou une option similaire pour un orchestrateur différent). P>
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.