次の方法で共有


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 ドライバーまたはモードがサポートされていますnatoverlaytransparentl2bridge、および l2tunnel。 物理ネットワークのインフラストラクチャと単一または複数のホストのネットワーク要件に応じて、ニーズに最適なネットワーク ドライバーを選択する必要があります。

Windows ネットワーク スタックを示します

Docker エンジンを初めて実行すると、内部 vSwitch と WinNAT という名前の Windows コンポーネントを使用する既定の NAT ネットワーク 'nat' が作成されます。 PowerShell または Hyper-V マネージャーを使用して作成されたホスト上に既存の外部 vSwitch がある場合は、 transparent ネットワーク ドライバーを使用して Docker でも使用でき、 docker network ls コマンドを実行すると表示されます。

Docker ネットワーク ls PowerShell コマンドを示します

  • internal vSwitch は、コンテナー ホスト上のネットワーク アダプターに直接接続されていないスイッチです。
  • external vSwitch は、コンテナー ホスト上のネットワーク アダプターに直接接続されるスイッチです。

Get-VMSwitch PowerShell コマンドを示します

'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を参照してください。

HNS 管理スタックを示します

サポートされていない機能とネットワーク オプション

現在、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