Pilote de réseau Overlay
Le pilote de réseau overlay
crée un réseau distribué entre plusieurs
hôtes de démons Docker. Ce réseau se situe au-dessus de (superpose) les
réseaux spécifiques à l'hôte, permettant aux conteneurs qui y sont connectés de communiquer de manière sécurisée quand
le chiffrement est activé. Docker gère de manière transparente le routage de chaque paquet vers
et depuis le bon hôte de démon Docker et le bon conteneur de destination.
Vous pouvez créer des réseaux overlay
définis par l'utilisateur en utilisant docker network create
,
de la même manière que vous pouvez créer des réseaux bridge
définis par l'utilisateur. Les services
ou conteneurs peuvent être connectés à plus d'un réseau à la fois. Les services ou
conteneurs ne peuvent communiquer qu'à travers les réseaux auxquels ils sont chacun connectés.
Les réseaux overlay sont souvent utilisés pour créer une connexion entre les services Swarm, mais vous pouvez aussi l'utiliser pour connecter des conteneurs autonomes s'exécutant sur différents hôtes. Lors de l'utilisation de conteneurs autonomes, il est toujours requis d'utiliser le mode Swarm pour établir une connexion entre les hôtes.
Cette page décrit les réseaux overlay en général, et quand ils sont utilisés avec des conteneurs autonomes. Pour des informations sur overlay pour les services Swarm, voir Gérer les réseaux de service Swarm.
Créer un réseau overlay
Avant de commencer, vous devez vous assurer que les nœuds participants peuvent communiquer sur le réseau. Le tableau suivant liste les ports qui doivent être ouverts vers chaque hôte participant à un réseau overlay :
Ports | Description |
---|---|
2377/tcp |
Le port de plan de contrôle Swarm par défaut, est configurable avec
docker swarm join --listen-addr |
4789/udp |
Le port de trafic overlay par défaut, configurable avec
docker swarm init --data-path-addr |
7946/tcp , 7946/udp |
Utilisé pour la communication entre les nœuds, non configurable |
Pour créer un réseau overlay auquel les conteneurs sur d'autres hôtes Docker peuvent se connecter, exécutez la commande suivante :
$ docker network create -d overlay --attachable my-attachable-overlay
L'option --attachable
permet à la fois aux conteneurs autonomes
et aux services Swarm de se connecter au réseau overlay.
Sans --attachable
, seuls les services Swarm peuvent se connecter au réseau.
Vous pouvez spécifier la plage d'adresses IP, le sous-réseau, la passerelle, et d'autres options. Voir
docker network create --help
pour les détails.
Chiffrer le trafic sur un réseau overlay
Utilisez le drapeau --opt encrypted
pour chiffrer les données d'application
transmises sur le réseau overlay :
$ docker network create \
--opt encrypted \
--driver overlay \
--attachable \
my-attachable-multi-host-network
Cela active le chiffrement IPsec au niveau du Virtual Extensible LAN (VXLAN). Ce chiffrement impose une pénalité de performance non négligeable, donc vous devriez tester cette option avant de l'utiliser en production.
WarningN'attachez pas les conteneurs Windows aux réseaux overlay chiffrés.
Le chiffrement de réseau overlay n'est pas pris en charge sur Windows. Swarm ne signale pas d'erreur quand un hôte Windows tente de se connecter à un réseau overlay chiffré, mais la mise en réseau pour les conteneurs Windows est affectée comme suit :
- Les conteneurs Windows ne peuvent pas communiquer avec les conteneurs Linux sur le réseau
- Le trafic de données entre les conteneurs Windows sur le réseau n'est pas chiffré
Attacher un conteneur à un réseau overlay
Ajouter des conteneurs à un réseau overlay leur donne la capacité de communiquer avec d'autres conteneurs sans avoir à configurer le routage sur les hôtes de démons Docker individuels. Un prérequis pour faire cela est que les hôtes aient rejoint le même Swarm.
Pour rejoindre un réseau overlay nommé multi-host-network
avec un conteneur busybox
:
$ docker run --network multi-host-network busybox sh
NoteCela ne fonctionne que si le réseau overlay est attachable (créé avec le drapeau
--attachable
).
Découverte de conteneur
Publier les ports d'un conteneur sur un réseau overlay ouvre les ports aux autres conteneurs sur le même réseau. Les conteneurs sont découvrables en faisant une recherche DNS en utilisant le nom du conteneur.
Valeur du drapeau | Description |
---|---|
-p 8080:80 |
Mappe le port TCP 80 dans le conteneur au port 8080 sur le réseau overlay. |
-p 8080:80/udp |
Mappe le port UDP 80 dans le conteneur au port 8080 sur le réseau overlay. |
-p 8080:80/sctp |
Mappe le port SCTP 80 dans le conteneur au port 8080 sur le réseau overlay. |
-p 8080:80/tcp -p 8080:80/udp |
Mappe le port TCP 80 dans le conteneur au port TCP 8080 sur le réseau overlay, et mappe le port UDP 80 dans le conteneur au port UDP 8080 sur le réseau overlay. |
Limite de connexion pour les réseaux overlay
En raison des limitations fixées par le noyau Linux, les réseaux overlay deviennent instables et les communications inter-conteneurs peuvent se rompre quand 1000 conteneurs sont co-localisés sur le même hôte.
Pour plus d'informations sur cette limitation, voir moby/moby#44973.
Étapes suivantes
- Parcourez le tutoriel de mise en réseau overlay
- Apprenez sur la mise en réseau du point de vue du conteneur
- Apprenez sur les réseaux bridge autonomes
- Apprenez sur les réseaux Macvlan