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