1.1 Pilote réseau Bridge
Les pilotes réseau Docker permettent aux containers d'interagir entre eux et avec les réseaux externes. Docker fournit plusieurs pilotes réseau, chacun avec ses propres spécificités et destiné à certains scénarios d'utilisation. Dans cette conférence, on va discuter de quatre pilotes réseau principaux : bridge, host, none et overlay.
Le pilote réseau bridge est le pilote réseau par défaut dans Docker. Il crée un réseau interne privé où les containers peuvent communiquer entre eux. Ce réseau est isolé du réseau externe de l'hôte.
Caractéristiques :
- Les containers connectés au réseau
bridge
peuvent interagir entre eux via des adresses IP. - Les réseaux externes ne peuvent pas interagir directement avec les containers du réseau
bridge
, sauf si le port forwarding est configuré. - Facilité d'utilisation pour des scénarios locaux de développement et de test.
Exemple d'utilisation :
Lors de la création d'un container sans spécification de réseau, il est automatiquement connecté au réseau bridge
.
docker run -d --name my_container nginx
Pour configurer le port forwarding, on utilise l'option -p
.
docker run -d -p 8080:80 --name my_container nginx
1.2 Driver réseau Host
Le driver réseau host
permet au container d'utiliser directement la pile réseau de la machine hôte. Ça veut dire que le container aura la même adresse IP que l'hôte et pourra utiliser toutes les interfaces réseau de l'hôte.
Caractéristiques :
- Les containers utilisant le driver réseau
host
fonctionnent plus rapidement grâce à la réduction des frais liés à la virtualisation réseau. - Les containers ont accès aux mêmes interfaces réseau que l'hôte, ce qui peut augmenter les risques de sécurité.
- Applicable dans des scénarios nécessitant une haute performance réseau ou des configurations réseau spécifiques.
Exemple d'utilisation :
docker run -d --network host --name my_container nginx
1.3 Driver réseau None
Le driver réseau none
désactive toutes les fonctionnalités réseau du conteneur. Un conteneur connecté au réseau none n'a pas d'interface réseau, ce qui l'isole complètement des autres conteneurs et réseaux.
Caractéristiques:
- Isolation complète du conteneur de tous les réseaux.
- Utile pour les conteneurs qui n'ont pas besoin de réseau, par exemple, pour exécuter des tâches indépendantes du réseau.
Exemple d'utilisation:
docker run -d --network none --name my_container busybox
1.4 Pilote réseau Overlay
Le pilote réseau overlay
est utilisé pour créer un réseau distribué qui s'étend sur plusieurs hôtes Docker. Ce pilote est souvent utilisé dans Docker Swarm ou Kubernetes pour permettre l'interaction réseau entre les conteneurs sur différents hôtes.
Caractéristiques :
- Permet la communication entre les conteneurs sur différents hôtes.
- Nécessite une configuration de cluster, comme Docker Swarm.
- Permet de créer des réseaux virtuels sur des réseaux existants, offrant un haut niveau d'isolation et de sécurité.
Exemple d'utilisation :
Pour utiliser le pilote overlay
, vous devez d'abord créer un cluster Docker Swarm.
1. Initialisation de Docker Swarm :
docker swarm init
2. Création d'un réseau overlay :
docker network create -d overlay my_overlay_network
3. Lancement de conteneurs connectés au réseau overlay
:
docker service create --name my_service --network my_overlay_network nginx
1.5 Comparaison des drivers réseau
Comparaison des différents drivers réseau
Driver réseau | Isolation | Performance | Applicabilité | Caractéristiques |
---|---|---|---|---|
bridge | Élevée | Moyenne | Réseaux locaux | Réseau isolé par défaut |
host | Faible | Élevée | Performance | Pile réseau partagée avec l'hôte |
none | Complète | Maximale | Isolation | Isolation complète du réseau |
overlay | Élevée | Élevée | Réseaux distribués | Communication entre conteneurs sur des hôtes différents |
Utilisation des drivers réseau
-
Bridge
: utilise-le pour des applications locales et des tests, quand les conteneurs doivent interagir entre eux mais doivent rester isolés du réseau externe. -
Host
: choisis-le pour des applications qui nécessitent des performances réseau élevées ou des configurations réseau spécifiques où l'isolation n'est pas une priorité. -
None
: idéal pour des conteneurs complètement isolés qui n'ont pas besoin d'interaction réseau. -
Overlay
: utilise-le pour des applications distribuées fonctionnant en cluster, nécessitant une communication entre conteneurs sur différents hôtes.
GO TO FULL VERSION