Windows 컨테이너 네트워킹

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

중요

일반적인 Docker 네트워킹 명령, 옵션 및 구문은 Docker 컨테이너 네트워킹 을 참조하세요. 지원되지 않는 기능 및 네트워크 옵션에 설명된 경우를 제외하고 모든 Docker 네트워킹 명령은 Linux와 동일한 구문을 사용하여 Windows에서 지원됩니다. 그러나 Windows 및 Linux 네트워크 스택은 다르기 때문에 일부 Linux 네트워크 명령(예 ifconfig: )이 Windows에서 지원되지 않습니다.

기본 네트워킹 아키텍처

이 항목에서는 Docker가 Windows에서 호스트 네트워크를 만들고 관리하는 방법에 대한 개요를 제공합니다. Windows 컨테이너는 네트워킹에 관해서 가상 컴퓨터와 유사하게 작동합니다. 각 컨테이너에는 Hyper-V 가상 스위치(vSwitch)에 연결된 가상 네트워크 어댑터(vNIC)가 있습니다. Windows는 Docker를 통해 만들 수 있는 5가지 네트워킹 드라이버 또는 모드 ( nat, overlay, transparent, l2bridgel2tunnel)를 지원합니다. 실제 네트워크 인프라와 단일 및 다중 호스트 네트워킹 요구 사항에 따라 요구에 가장 적합한 네트워크 드라이버를 선택해야 합니다.

Windows 네트워크 스택을 보여 줍니다.

Docker 엔진이 처음 실행되면 내부 vSwitch 및 라는 Windows 구성 요소를 사용하는 기본 NAT 네트워크 'nat'를 WinNAT만듭니다. PowerShell 또는 Hyper-V 관리자를 통해 생성된 호스트에 기존 외부 vSwitch가 있는 경우 투명한 네트워크 드라이버를 사용하여 Docker에서도 사용할 수 있으며 명령을 실행할 docker network ls 때 볼 수 있습니다.

Docker 네트워크 ls PowerShell 명령을 보여 줍니다.

  • 내부 vSwitch는 컨테이너 호스트의 네트워크 어댑터에 직접 연결되지 않은 vSwitch입니다.
  • 외부 vSwitch는 컨테이너 호스트의 네트워크 어댑터에 직접 연결된 vSwitch입니다.

Get-VMSwitch PowerShell 명령을 보여 줍니다.

'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를 참조하세요.

HNS 관리 스택을 보여 줍니다.

지원되지 않는 기능 및 네트워크 옵션

다음 네트워킹 옵션은 현재 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