Les modes réseau Docker
Docker propose plusieurs drivers réseau, chacun adapté à des cas d'usage spécifiques.
Bridge (par défaut)
Le mode bridge crée un réseau isolé pour les conteneurs sur un même hôte :
docker network create --driver bridge mon-reseau
docker run --network mon-reseau --name app myapp
docker run --network mon-reseau --name db mysql
Les conteneurs sur le même réseau bridge peuvent communiquer via leur nom de conteneur comme hostname.
Host
Le mode host supprime l'isolation réseau. Le conteneur utilise directement le réseau de l'hôte :
docker run --network host nginx
Utile pour les performances maximales mais sans isolation.
Overlay
Pour les clusters Docker Swarm, le réseau overlay permet la communication entre conteneurs sur différents nœuds :
docker network create --driver overlay --attachable mon-overlay
DNS interne
Docker intègre un serveur DNS permettant la résolution par nom de service :
services:
app:
networks:
- frontend
- backend
nginx:
networks:
- frontend
db:
networks:
- backend
networks:
frontend:
backend:
Bonnes pratiques réseau
- Isolez les services par réseau (frontend, backend, monitoring)
- Utilisez des réseaux internes pour les services non exposés
- Documentez vos topologies réseau
- Limitez les ports exposés au strict minimum