Wie man einen bestimmten Hostnamen wie die Option -h in Dockerfile behandelt

Ich verwende CentOS 7 als Docker-Daemon-Host und Centos: 6 Docker-Images.

Ich möchte eine Software installieren, die einen auflösbaren Hostnamen als Nicht-Loopback-Adresse erfordert. Wenn ich ein Docker-Image mit der Option -h wie @ ausfüh

docker run -i -t -h myhost centos:6 /bin/bash

Dann kann ich die Software installieren, da / etc / hosts im Container automatisch wie @ konfiguriert wir

[root@myhost /]# cat /etc/hosts
172.17.0.7  myhost
127.0.0.1   localhost    

[root@myhost /]# ping myhost
PING myhost (172.17.0.7) 56(84) bytes of data.
64 bytes from myhost (172.17.0.7): icmp_seq=1 ttl=64 time=0.033 ms

Aber ich kann nicht den gleichen Weg verwenden, wenn ich ein Bild aus Dockerfile erstelle. Ich habe getestet, wie ich ein Image mit folgendem Dockerfile erstellt hab

FROM centos:6

ENV HOSTNAME myhost
RUN ping myhost

In Docker-Erstellungsprozess kann der zugewiesene Hostname nicht wie folgt als dynamische IP-Adresse aufgelöst werden:

$ docker build -t testimage .
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM centos:6
 ---> a30bc9f3097e
Step 1 : ENV HOSTNAME myhost
 ---> Using cache
 ---> e73bf592389e
Step 2 : RUN ping myhost
 ---> Running in ca54c8eac073
ping: unknown host myhost
INFO[0000] The command [/bin/sh -c ping myhost] returned a non-zero code: 2

Wie kann ich einen bestimmten Hostnamen verwenden, der als dynamische Container-IP-Adresse aufgelöst wurde?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage