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 connaître les commandes, options et syntaxe de mise en réseau Docker générales. À l’exception de tous les cas décrits dans les fonctionnalités et options réseau non prises en charge, toutes les commandes 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. 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. Sur le plan de la mise en réseau, les conteneurs Windows fonctionnent de la même façon que des machines virtuelles. Chaque conteneur possède une carte réseau virtuelle (vNIC) connectée à un commutateur virtuel Hyper-V (vSwitch). Windows prend en charge cinq modes ou pilotes réseau différents qui peuvent être créés via Docker : nat, overlay, 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).

Illustre la pile réseau Windows

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 peuvent être vus lorsque vous exécutez la docker network ls commande.

Illustre la commande PowerShell docker network ls

  • Un commutateur virtuel interne n’est pas directement connecté à une carte réseau sur l’hôte de conteneur.
  • Un commutateur virtuel externe est un commutateur qui est directement connecté à une carte réseau sur l’hôte de conteneur.

Illustre la commande PowerShell Get-VMSwitch

Le réseau « nat » est le réseau par défaut des conteneurs qui s’exécutent sur Windows. Tous les conteneurs qui s'exécutent sur Windows sans indicateurs ou arguments pour implémenter des configurations de réseau spécifiques sont attachés au réseau « nat » par défaut, et une adresse IP leur est affectée à partir de la plage 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 de réseau de conteneur avec le service HNS

Le service de mise en réseau hôte (HNS) et le service de calcul hôte (HCS) travaillent ensemble pour créer des conteneurs et attacher des points de terminaison à un réseau. Vous pouvez interagir avec HNS via le module HNS PowerShell Helper.

Création de réseau

  • HNS crée un commutateur virtuel Hyper-V pour chaque réseau
  • HNS crée des pools NAT et IP en fonction des besoins

Création de point de terminaison

  • HNS crée un espace de noms réseau par point de terminaison de conteneur
  • HNS/HCS place v(m)NIC dans l’espace de noms réseau
  • HNS crée des ports (vSwitch)
  • HNS affecte l’adresse IP, les informations DNS, les itinéraires, etc. (sous réserve du mode réseau) au point de terminaison

Création d'une stratégie

  • Pour le réseau de traduction d’adresses réseau (NAT) par défaut, HNS crée les règles et mappages de transfert de port WinNAT avec les règles ALLOW du 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, notamment 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 API de service de réseau de calcul hôte (HCN) pour les machines virtuelles et les conteneurs.

Illustre la pile de gestion HNS

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 attachés aux réseaux l2bridge prennent en charge la pile IPv6. Toutefois, les conteneurs Windows attachés aux réseaux NAT et de superposition ne prennent pas en charge la communication sur la pile IPv6.
  • Communication de conteneur chiffrée via IPsec.
  • Mise en réseau du 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, --ip-range, --ipam-driver, --ipam-opt, --ipv6, --opt encrypted