DOCKER - 14 Concepts Réseaux
Docker utilise un système de réseautage avec des valeurs par défaut cohérentes mais entièrement personnalisables. Par défaut, lorsque vous lancez un conteneur, il se connecte au réseau bridge, un réseau virtuel isolé qui utilise le pare-feu Docker pour connecter les conteneurs à l'hôte et à Internet. Cette architecture offre une isolation de sécurité tout en permettant la communication.
Pour exposer un port d'application à votre machine hôte, utilisez l'option -p : le premier nombre est le port hôte, le second le port du conteneur :
docker run -p 8080:80 nginx
Cette commande mappe le port 80 de Nginx (à l'intérieur du conteneur) au port 8080 de votre machine. Vous accédez alors au service via localhost:8080. La commande docker containers port affiche rapidement quels ports sont mappés pour un conteneur donné.
Contrairement aux machines virtuelles, Docker n'utilise pas le même réseau IP que votre hôte : les conteneurs ont leurs propres adresses IP internes (par défaut en plage 172.17.x.x). Pour communiquer entre conteneurs sans exposer les ports à l'hôte, créez un réseau virtuel personnalisé où les conteneurs résolvent leurs noms DNS automatiquement, facilitant la découverte de services sans port mapping.
La philosophie de Docker est celle des "batteries incluses mais amovibles" : les valeurs par défaut fonctionnent bien, mais chaque paramètre est modifiable selon vos besoins architecturaux et de sécurité.
En résumé
Cette leçon explique les fondamentaux des réseaux Docker, essentiels pour démarrer et configurer les conteneurs. Elle couvre l'exposition des ports, la communication inter-conteneurs, les réseaux virtuels et la gestion automatique du réseau par Docker avec son modèle « batterie incluse mais amovible ». Vous découvrirez comment utiliser les commandes docker pour inspecter les ports ouverts et comprendre le rôle du pare-feu Docker dans l'isolement des conteneurs.
Points clés
- Prérequis : comprendre TCP/IP, réseaux, adresses IP, ports et pare-feux pour maîtriser les réseaux Docker
- Utiliser les options -p et -P pour exposer les ports d'un conteneur à l'hôte physique
- La commande docker container port fournit un aperçu rapide des ports ouverts d'un conteneur
- Les conteneurs se connectent par défaut au réseau bridge et disposent d'une adresse IP interne différente de l'hôte
- Créer plusieurs réseaux virtuels pour isoler les applications sans exposer les ports au réseau physique
- Docker configure automatiquement un pare-feu et les réseaux avec des valeurs par défaut modifiables
Questions fréquentes
Quelle est la différence entre les options -p et -P dans Docker ?
L'option -p expose des ports spécifiques de l'hôte vers le conteneur, tandis que -P est l'option tcp/ip de base. Les deux participent à la stratégie d'exposition des ports configurée par Docker, mais -p offre plus de contrôle granulaire.
Pourquoi créer plusieurs réseaux virtuels pour les conteneurs ?
Créer plusieurs réseaux virtuels permet d'isoler les applications sans exposer leurs ports au réseau physique. Par exemple, un réseau pour une application web (Apache + PHP) et un autre pour une base de données (MongoDB), chacun avec ses exigences de sécurité spécifiques.
L'adresse IP d'un conteneur est-elle la même que celle de l'hôte ?
Non. Par défaut, les conteneurs disposent d'une adresse IP interne (par ex. 172.17.x.x) différente de celle de l'hôte. Vous pouvez consulter cette adresse avec la commande docker inspect en spécifiant un format personnalisé.