Les Pilotes Réseau

Docker inclut plusieurs drivers Réseau que l’on peut choisir avec l’option --net <driver>

  • bridge (par defaut)
  • none
  • host
  • container

Le bridge

Par defaut le conteneur obtient une interface virtuelle eth0 en plus de son interface de bouclage (127.0.0.1)
Cette interface est fournie par une paire de veth.

Elle est connectée au Bridge Docker appelé docker0 par defaut.
Les adresses sont allouées dans un réseau privé interne 172.17.0.0/16 par défault.

Le trafic sortant passe par une régle iptables MASQUERADE, puis le trafic entrant et naté par DNAT.
Les régles sont automatiquement gérées par Docker.

Le null driver

Pas grand chose à dire sur celui-là, Si ce n’est que le conteneur ne peut pas envoyer ni recevoir de trafic.
Il obtient uniquement son adresse local lo

Le host driver

Le conteneur executé avec ce driver voit et accède aux interfaces de l’hôte.
Le trafic n’est donc pas naté et ne passe pas par une veth.

Ce driver permet donc d’avoir les performances natives de la carte réseau. Très pratique dans des applications sensibles à la latence (Voip, streaming, …)

Le driver container

Celui-ci est un peu spécial car il permet de réutiliser la stack réseau d’un autre conteneur.
Les deux conteneurs partagent la même interface, IP, routes, …
Ils peuvent communiquer au travers de 127.0.0.1.