Как обработать определенное имя хоста, например, параметр -h в Dockerfile
Я использую CentOS 7 в качестве хоста демона Docker и Centos: 6 образов Docker.
Я хочу установить программное обеспечение, для которого требуется разрешаемое имя хоста в качестве адреса без обратной связи. Если я запускаю образ докера с опцией -h, например
docker run -i -t -h myhost centos:6 /bin/bash
Затем я могу установить программное обеспечение, потому что / etc / hosts в контейнере автоматически настраивается как
[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
Но я не могу использовать тот же способ, если я создаю изображение из Dockerfile. Я протестировал создание изображения с помощью следующего Dockerfile
FROM centos:6
ENV HOSTNAME myhost
RUN ping myhost
В процессе сборки Docker назначенное имя хоста не может быть разрешено как динамический IP-адрес, как показано ниже:
$ 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
Как я могу использовать определенное имя хоста, разрешенное как динамический IP-адрес контейнера?