Cet article montre comment ajouter des entrées d'hôte sur /etc/hosts sur le conteneur Docker lors de son exécution. Pour les besoins de cet article, nous utilisons l'hôte CentOS/RHEL 7. Mais cela devrait fonctionner sur n'importe quel hôte Linux capable d'exécuter les dernières versions de docker.
De manière générale, le fichier /etc/hosts ne peut pas être modifié avant d'exécuter le conteneur Docker. Cependant, le docker actuel a une option "–add-host ” qui ajoute des entrées d'hôte sur /etc/hosts lorsque le conteneur est exécuté. Vous trouverez ci-dessous la syntaxe pour ajouter une entrée d'hôte lors de la création d'un nouveau conteneur Docker.
$ sudo docker run --add-host [Hostname]:[IPAddress] -ti [Source_Container_Image] /bin/bash
Par exemple, pour ajouter une nouvelle entrée d'hôte (192.168.0.1 host2.test.com), utilisez la commande ci-dessous :
$ 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
L'exemple apporte /etc/hosts dans le nouveau conteneur qui a host1.test.com et host2.test.com comme :
[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 /]#