Dieser Beitrag zeigt, wie Hosteinträge zu /etc/hosts im Docker-Container hinzugefügt werden, wenn er ausgeführt wird. Für diesen Beitrag verwenden wir den Host CentOS/RHEL 7. Dies sollte jedoch auf jedem Linux-Host funktionieren, der die neuesten Docker-Versionen ausführen kann.
Im Allgemeinen kann die Datei /etc/hosts nicht geändert werden, bevor der Docker-Container ausgeführt wird. Der aktuelle Docker hat jedoch eine Option „–add-host “, der Host-Einträge zu /etc/hosts hinzufügt, wenn der Container ausgeführt wird. Nachfolgend finden Sie die Syntax zum Hinzufügen eines Hosteintrags beim Erstellen eines neuen Docker-Containers.
$ sudo docker run --add-host [Hostname]:[IPAddress] -ti [Source_Container_Image] /bin/bash
Um beispielsweise einen neuen Hosteintrag (192.168.0.1 host2.test.com) hinzuzufügen, verwenden Sie den folgenden Befehl:
$ sudo docker run --add-host host1.test.com:192.168.0.1 --add-host host2.test.com:192.168.0.2 -ti source_container_image /bin/bash
Das Beispiel bringt /etc/hosts in den neuen Container mit host1.test.com und host2.test.com wie:
[root@63933bfcd3d3 /]# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.0.1 host1.test.com 192.168.0.2 host2.test.com 172.17.0.4 63933bfcd3d3 [root@63933bfcd3d3 /]#