Windows コンテナー ネットワーク
適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016
重要
一般的な Docker ネットワーク コマンド、オプション、構文については、 Docker Container Networking を参照してください。 サポートされていない機能とネットワーク オプションで説明されている場合を除きすべての Docker ネットワーク コマンドは、Linux と同じ構文で Windows でサポートされます。 ただし、Windows と Linux のネットワーク スタックは異なります。そのため、一部の Linux ネットワーク コマンド ( ifconfig
など) は Windows ではサポートされていません。
基本的なネットワーク アーキテクチャ
このトピックでは、Docker が Windows 上のホスト ネットワークを作成および管理する方法の概要について説明します。 Windows コンテナーは、ネットワークに関して仮想マシンと同様に機能します。 各コンテナーには、Hyper-V 仮想スイッチ (vSwitch) に接続されている仮想ネットワーク アダプター (vNIC) があります。 Windows では、Docker を使用して作成できる 5 つの異なるnetworking ドライバーまたはモードがサポートされていますnat、overlay、transparent、l2bridge、および l2tunnel。 物理ネットワークのインフラストラクチャと単一または複数のホストのネットワーク要件に応じて、ニーズに最適なネットワーク ドライバーを選択する必要があります。
Docker エンジンを初めて実行すると、内部 vSwitch と WinNAT
という名前の Windows コンポーネントを使用する既定の NAT ネットワーク 'nat' が作成されます。 PowerShell または Hyper-V マネージャーを使用して作成されたホスト上に既存の外部 vSwitch がある場合は、 transparent ネットワーク ドライバーを使用して Docker でも使用でき、 docker network ls
コマンドを実行すると表示されます。
- internal vSwitch は、コンテナー ホスト上のネットワーク アダプターに直接接続されていないスイッチです。
- external vSwitch は、コンテナー ホスト上のネットワーク アダプターに直接接続されるスイッチです。
'nat' ネットワークは、Windows で実行されているコンテナーの既定のネットワークです。 特定のネットワーク構成を実装するためのフラグや引数を指定せずに Windows で実行されるすべてのコンテナーは、既定の 'nat' ネットワークにアタッチされ、'nat' ネットワークの内部プレフィックス IP 範囲から IP アドレスが自動的に割り当てられます。 'nat' に使用される既定の内部 IP プレフィックスは 172.16.0.0/16 です。
ホスト ネットワーク サービスを使用したコンテナー ネットワーク管理
ホスト ネットワーク サービス (HNS) とホスト コンピューティング サービス (HCS) は連携してコンテナーを作成し、エンドポイントをネットワークに接続します。 HNS は、 HNS PowerShell ヘルパー モジュールを使用して操作できます。
ネットワークの作成
- HNS は、ネットワークごとに Hyper-V 仮想スイッチを作成します
- HNS では、必要に応じて NAT プールと IP プールが作成されます
エンドポイントの作成
- HNS は、コンテナー エンドポイントごとにネットワーク名前空間を作成します
- HNS/HCS は、ネットワーク名前空間内に v(m)NIC を配置します
- HNS によって (vSwitch) ポートが作成される
- HNS は、IP アドレス、DNS 情報、ルートなどをエンドポイントに割り当てます (ネットワーク モードの対象)。
ポリシーの作成
- 既定のネットワーク アドレス変換 (NAT) ネットワークの場合、HNS は、対応する Windows ファイアウォールの ALLOW 規則を使用して WinNAT ポート転送規則とマッピングを作成します。
- 他のすべてのネットワークでは、HNS は仮想フィルタリング プラットフォーム (VFP) を使用して、負荷分散、ACL、カプセル化を含むポリシーを作成します。 HNS API とスキーマの詳細については、「VM とコンテナーの Host Compute Network (HCN) サービス APIを参照してください。
サポートされていない機能とネットワーク オプション
現在、Windows では次のネットワーク オプションがサポート されません 。
- Windows Server 2022 以降、Windows コンテナーでは IPv6 ネットワークに対して次のサポートが提供されています。
- l2bridge ネットワークに接続されているコンテナーは、IPv6 スタックをサポートします。
- 透過的なネットワークに接続されたコンテナーは、IPv6 を使用した通信と自己割り当て IP アドレスをサポートしますが、HNS が提供する IP アドレスの割り当てや、負荷分散や ACL などの他のネットワーク サービスはサポートされていません。
- NAT およびオーバーレイ ネットワークに接続されている Windows コンテナーは、IPv6 スタック経由の通信をサポートしていません。
- IPsec 経由の暗号化されたコンテナー通信。
- ホスト モード ネットワーク。
- 透過的なネットワーク ドライバーを使用した仮想化された Azure インフラストラクチャでのネットワーク。
command | サポートされていないオプション |
---|---|
docker run |
--ip6 , --dns-option |
docker network create |
--aux-address 、 --internal 、 --ip-range 、 --ipam-driver 、 --ipam-opt 、 --ipv6 、 --opt encrypted |