Mise en réseau de conteneur Windows
S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016
Important
Reportez-vous à Docker Container Networking pour obtenir des commandes, des options et une syntaxe de mise en réseau Docker générales. À l’exception de tous les cas décrits dans les fonctionnalités non prises en charge et les options réseau, toutes les commandes de mise en réseau Docker sont prises en charge sur Windows avec la même syntaxe que sur Linux. Toutefois, les piles réseau Windows et Linux sont différentes et, par conséquent, vous constaterez que certaines commandes réseau Linux (par exemple) ifconfig
ne sont pas prises en charge sur Windows.
Architecture de mise en réseau de base
Cette rubrique fournit une vue d’ensemble de la façon dont Docker crée et gère des réseaux hôtes sur Windows. Les conteneurs Windows fonctionnent de la même façon que les machines virtuelles en ce qui concerne la mise en réseau. Chaque conteneur possède une carte réseau virtuelle (vNIC) connectée à un commutateur virtuel Hyper-V (vSwitch). Windows prend en charge cinq pilotes ou modes de mise en réseau différents qui peuvent être créés via Docker : nat, superposition, transparent, l2bridge et l2tunnel. Choisissez le pilote réseau le mieux adapté à l’infrastructure de votre réseau physique et à la configuration requise du réseau (hôte unique ou hôtes multiples).
La première fois que le moteur Docker s’exécute, il crée un réseau NAT par défaut, « nat », qui utilise un commutateur virtuel interne et un composant Windows nommé WinNAT
. S’il existe des commutateurs virtuels externes préexistants sur l’hôte qui ont été créés via PowerShell ou le Gestionnaire Hyper-V, ils sont également disponibles pour Docker à l’aide du pilote réseau transparent et sont visibles lorsque vous exécutez la docker network ls
commande.
- Un commutateur virtuel interne est un commutateur virtuel qui n’est pas directement connecté à une carte réseau sur l’hôte de conteneur.
- Un commutateur virtuel externe est un commutateur virtuel directement connecté à une carte réseau sur l’hôte de conteneur.
Le réseau « nat » est le réseau par défaut pour les conteneurs s’exécutant sur Windows. Tous les conteneurs exécutés sur Windows sans aucun indicateur ou argument pour implémenter des configurations réseau spécifiques seront attachés au réseau « nat » par défaut et attribués automatiquement une adresse IP à partir de la plage d’adresses IP de préfixe interne du réseau « nat ». Le préfixe IP interne par défaut utilisé pour « nat » est 172.16.0.0/16.
Gestion du réseau de conteneurs avec le service réseau hôte
Le service de mise en réseau hôte (HNS) et le service de calcul hôte (HCS) fonctionnent ensemble pour créer des conteneurs et attacher des points de terminaison à un réseau. Vous pouvez interagir avec HNS via le module d’assistance HNS PowerShell.
Création du réseau
- HNS crée un commutateur virtuel Hyper-V pour chaque réseau
- HNS crée des pools NAT et IP selon les besoins
Création d’un point de terminaison
- HNS crée un espace de noms réseau par point de terminaison de conteneur
- HNS/HCS place v(m)NIC à l’intérieur de l’espace de noms réseau
- HNS crée des ports (vSwitch)
- HNS affecte l’adresse IP, les informations DNS, les itinéraires, etc. (soumis au mode réseau) au point de terminaison
Création d'une stratégie
- Pour le réseau nat (Traduction d’adresses réseau) par défaut, HNS crée les règles et mappages de transfert de port WinNAT avec les règles ALLOW de pare-feu Windows correspondantes.
- Pour tous les autres réseaux, HNS utilise la plateforme de filtrage virtuel (VFP) pour la création de stratégies qui inclut l’équilibrage de charge, les listes de contrôle d’accès et l’encapsulation. Pour plus d’informations sur les API HNS et le schéma, consultez l’API de service HCN (Host Compute Network) pour les machines virtuelles et les conteneurs.
Fonctionnalités et options réseau non prises en charge
Les options de mise en réseau suivantes ne sont actuellement pas prises en charge sur Windows :
- À partir de Windows Server 2022, les conteneurs Windows prennent en charge la mise en réseau IPv6 suivante :
- Les conteneurs attachés aux réseaux l2bridge prennent en charge la pile IPv6.
- Les conteneurs attachés à des réseaux transparents prennent en charge la communication à l’aide d’IPv6 avec des adresses IP auto-affectées, mais ne prennent pas en charge l’attribution d’adresses IP fournies par HNS et d’autres services réseau tels que l’équilibrage de charge et les listes de contrôle d’accès.
- Les conteneurs Windows attachés aux réseaux NAT et superposition ne prennent pas en charge la communication sur la pile IPv6.
- Communication de conteneur chiffrée via IPsec.
- Mise en réseau en mode hôte.
- Mise en réseau sur une infrastructure Azure virtualisée via le pilote réseau transparent.
Commande | Option non prise en charge |
---|---|
docker run |
--ip6 , --dns-option |
docker network create |
--aux-address , --internal , , --ipam-driver --ip-range , --ipam-opt , , --ipv6 ,--opt encrypted |