Ceci est une ancienne révision du document !
Par défaut le conteneur se voit attribuer une adresse IP pour chaque réseau auquel il est connecté. Le daemon Docker agit à la manière d'un serveur DHCP et fournit une IP dans le pool réservé au réseau. Chaque réseau à son propre masque et sa passerelle par défaut.
Lorsque de sa création, le conteneur ne peut être connecté qu'à un seul réseau. Celui-ci peut être définit sur la ligne de commande via l'option --network. On peut également spécifier une adresse IP via les options --ip ou --ip6. Si rien n'est spécifié, un réseau dédié est créé pour le conteneur.
docker run --interactive --tty --name network_test busybox:latest /bin/sh # On affiche IP de l'interface créée par défaut / # ip a ... 24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever # on quitte le bash, l'execution du conteneur est stoppée exit
Afficher les paramètres réseau actuels du conteneur network_test
:
docker container inspect --format "{{json .NetworkSettings}}" network_test | jq
On redémarre le conteneur et on le connecte à un réseau docker supplémentaire existant sur l’hôte. Ici pour l'exemple vnet-monitoring
# Démarrer le conteneur qui rejoint son réseau par défaut docker container start network_test # Connecter le conteneur sur un autre réseau, ici vnet-monitoring docker network connect vnet-monitoring network_test
On ouvre un shell dans le conteneur pour afficher les paramètres réseau
docker container exec --interactive network_test /bin/sh ip a ... 26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever 28: eth1@if29: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:18:00:04 brd ff:ff:ff:ff:ff:ff inet 172.24.0.4/16 brd 172.24.255.255 scope global eth1 valid_lft forever preferred_lft forever
On constate bien qu'une nouvelle interface connecte le conteneur au réseau 172.24.0.0/16
Il est possible de spécifier un ou plusieurs domaines de recherche pour les noms de machine non pleinement qualifiés.
En ligne de commande via les
Via le docker-compose