Как обработать определенное имя хоста, например, параметр -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-адрес контейнера?

Ответы на вопрос(4)

Ваш ответ на вопрос