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?