Outils pour utilisateurs

Outils du site


sysadmin:docker:configuration_reseau

Ceci est une ancienne révision du document !


Docker: Configuration réseau des conteneurs

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

Domaine de recherche

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

Références

sysadmin/docker/configuration_reseau.1635511211.txt.gz · Dernière modification : 2021/10/29 12:40 de yoann