DOCKER - 15 Réseaux virtuels

Plutôt que d'utiliser le réseau bridge par défaut, créez des réseaux virtuels personnalisés pour isoler les groupes de conteneurs d'une application. Cela offre une meilleure sécurité et une meilleure organisation :

docker network create myapp
docker network ls

Listez les réseaux existants (vous verrez bridge, host, none, et vos réseaux personnalisés). Utilisez le driver bridge par défaut ou spécifiez un autre driver. Connectez un conteneur à votre réseau avec l'option --network :

docker run --network myapp --name web nginx

La commande docker network inspect montre les conteneurs attachés et leur plage IP (par défaut 172.17.x.x ou similaire). Contrairement au réseau bridge par défaut, les réseaux personnalisés offrent une résolution DNS automatique : les conteneurs se découvrent par nom sans utiliser --link. Vous pouvez aussi ajouter ou retirer une interface réseau d'un conteneur en cours d'exécution :

docker network connect myapp existant_conteneur
docker network disconnect myapp existant_conteneur

Les réseaux virtuels personnalisés sont essentiels pour les applications multi-conteneurs : ils améliorent la sécurité (isolation logique), simplifient la gestion DNS (pas de mappage IP statique), et permettent une meilleure organisation architecturale. C'est la base de Docker Compose et des orchestrateurs modernes.

En résumé

Cette leçon présente les réseaux virtuels Docker et les commandes essentielles pour les gérer. Elle couvre les trois drivers de réseau principaux (bridge, host, none), explique comment créer des réseaux personnalisés avec des sous-réseaux et adresses IP automatiques, et montre comment connecter ou déconnecter des conteneurs aux réseaux en cours d'exécution, de manière similaire à l'insertion de cartes réseau physiques sur un ordinateur actif.

Points clés

  • Commandes Docker réseau essentielles: ls, inspect, create, connect, disconnect permettent une gestion complète de la topologie réseau
  • Trois drivers de réseau disponibles: bridge (réseau isolé par défaut, 172.17.0.0), host (interface directe sans isolation), et none (pas de connectivité)
  • Les réseaux virtuels attribuent automatiquement des adresses IP aux conteneurs et gèrent les sous-réseaux et passerelles par défaut
  • Les conteneurs peuvent être connectés à plusieurs réseaux simultanément, chacun avec une interface réseau et une adresse IP propres
  • Driver bridge est le défaut pour les réseaux personnalisés créés avec docker network create, idéal pour l'isolation sur un serveur unique
  • Débrancher et rebrancher des conteneurs à des réseaux différents imite le comportement des câbles Ethernet physiques, sans redémarrage requis

Questions fréquentes

Quels sont les trois drivers de réseau Docker et quand utiliser chacun?

Bridge (par défaut, réseau isolé avec protection de conteneurisation), host (interface directe au réseau physique, meilleure performance mais moins de sécurité), et none (pas de connectivité réseau). Bridge convient pour la plupart des applications sur serveur unique, host pour les besoins de haute performance, et none pour les conteneurs sans réseau.

Comment connecter un conteneur existant à un nouveau réseau sans le redémarrer?

Utilisez la commande `docker network connect <nom-reseau> <nom-conteneur>`. Le conteneur reçoit une nouvelle interface réseau avec une adresse IP sur ce réseau, similaire à l'insertion d'une carte réseau physique sur un ordinateur actif.

Quels sous-réseaux Docker assigne-t-il par défaut aux réseaux bridge?

Le réseau bridge par défaut utilise le sous-réseau 172.17.0.0, et chaque nouveau réseau créé incrémente: 172.18.x.x, 172.19.x.x, etc. La passerelle achemine le trafic vers le réseau physique de l'hôte.