컨테이너 기본 이미지

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

Windows는 사용자가 빌드할 수 있는 4가지 컨테이너 기본 이미지를 제공합니다. 각 기본 이미지는 Windows 또는 Windows Server 운영 체제가 다르고, 차지하는 디스크 공간이 다르며, Windows API 집합이 다릅니다.

이미지 검색

모든 Windows 컨테이너 기본 이미지는 Docker Hub를 통해 검색할 수 있습니다. Windows 컨테이너 기본 이미지 자체는 MCR(Microsoft Container Registry)(mcr.microsoft.com)에 제공됩니다. 이러한 이유로 Windows 컨테이너 기본 이미지에 대한 pull 명령은 다음과 같은 형식입니다.

docker pull mcr.microsoft.com/windows/servercore:ltsc2022

MCR은 자체 카탈로그 환경이 없으며 Docker Hub 같은 기존 카탈로그를 지원하는 용도로 사용됩니다. AZURE의 글로벌 공간과 Azure CDN과 결합된 MCR은 일관되고 빠른 이미지 끌어오기 환경을 제공합니다. Azure에서 워크로드를 실행하는 Azure 고객은 네트워크 성능이 향상될 뿐 아니라 MCR(Microsoft 컨테이너 이미지의 소스)과의 긴밀한 통합, Azure Marketplace, 컨테이너를 배포 패키지 형식으로 제공하는 서비스(그 수가 점점 늘어나고 있음)의 이점을 활용할 수 있습니다.

기본 이미지 선택

빌드할 적당한 기본 이미지를 선택하려면 어떻게 해야 할까요? 대부분의 사용자에게는 Windows Server CoreNanoserver가 가장 적당한 이미지입니다. 각 기본 이미지는 아래에 간략하게 설명되어 있습니다.

  • Nano Server는 새로운 애플리케이션 개발을 위한 매우 뛰어난 Windows 제품입니다.
  • Server Core는 중간 크기이며 Windows Server 앱을 "리프트 앤 시프트"하는 데 적합한 옵션입니다.
  • Windows는 가장 큰 이미지이며 워크로드에 대해 완전한 Windows API 지원을 제공합니다.
  • Windows Server는 Windows 이미지보다 약간 작고, 완전한 Windows API 지원을 제공하며, 더 많은 서버 기능을 사용할 수 있습니다.

지침

사용하려는 대상 이미지를 자유롭게 선택할 수 있으며, 다음은 적당한 이미지 선택을 도와주기 위한 지침입니다.

  • 애플리케이션에 전체 .NET Framework가 필요한가요? 이 질문에 대한 대답이 예라면 Windows Server Core를 대상으로 삼아야 합니다.
  • .NET Core를 기반으로 Windows 앱을 빌드하나요? 이 질문에 대한 대답이 예라면 Nanoserver를 대상으로 삼아야 합니다.
  • 앱에 필요한 종속성이 Windows Server Core 컨테이너 이미지에는 없나요? 이 질문에 대한 대답이 예라면 Windows를 대상으로 삼아야 합니다. 이 이미지는 다른 기본 이미지보다 훨씬 크지만, 여러 핵심 Windows 라이브러리(예: GDI 라이브러리)를 제공합니다.
  • Windows 참가자인가요? 그렇다면 참가자 버전의 이미지를 사용하는 방안을 고려해야 합니다. 자세한 내용은 아래의 "Windows 참가자를 위한 기본 이미지"를 참조하세요.
  • 컨테이너 워크로드에 대한 GPU 가속 지원이 필요한가요? 그렇다면 이미지를 사용하여 Windows 컨테이너 워크로드에 대한 하드웨어 가속을 포함하는 Windows Server 이미지를 사용하는 것을 고려해야 합니다.

많은 Windows 사용자들은 .NET에 종속된 애플리케이션을 컨테이너화하려고 합니다. 여기에 설명된 4가지 기본 이미지 외에도, Microsoft는 .NET Framework 이미지나 ASP .NET 이미지처럼 인기 있는 Microsoft 프레임워크로 미리 구성된 여러 Windows 컨테이너 이미지를 게시합니다.

Windows 및 Windows Server

Windows Server 이미지(3.1GB)의 크기는 Windows 이미지(3.4GB)보다 약간 작습니다. 또한 Windows Server 이미지는 Server Core 이미지의 모든 성능 및 안정성 개선 사항을 상속하고 GPU를 지원하며 IIS 연결에 대한 제한이 없습니다. 최신 Windows Server 이미지를 사용하려면 Windows Server 2022 설치가 필요합니다. Windows 이미지는 Windows Server 2022에 사용할 수 없습니다.

Windows 참가자를 위한 기본 이미지

Microsoft에서는 각 컨테이너 기본 이미지의 "참가자" 버전을 제공합니다. 이러한 참가자 컨테이너 이미지는 컨테이너 이미지에서 가장 강력한 최신 기능 개발을 수행합니다. Windows 참가자 버전(Windows 참가자 또는 Windows Server Insider)인 호스트를 실행하는 경우 이러한 이미지를 사용하는 것이 좋습니다. 다음 참가자 이미지는 Docker Hub에 제공됩니다.

자세한 내용은 Windows 참가자 프로그램에서 컨테이너 사용을 참조하세요.

Windows Server Core와 Nanoserver의 차이점

Windows Server CoreNanoserver는 대상으로 지정되는 가장 일반적인 기본 이미지입니다. 두 이미지의 주요 차이점은 Nanoserver의 API 화면이 훨씬 작다는 점입니다. PowerShell, WMI 및 Windows 서비스 스택은 Nanoserver 이미지에 없습니다.

Nanoserver는 .NET 코어 또는 다른 최신 오픈 소스 프레임워크에 종속된 앱을 실행하기에 부족하지 않은 API 화면을 제공하는 용도로 빌드되었습니다. API 화면이 더 작은 대신, Nanoserver 이미지는 나머지 Windows 기반 이미지보다 디스크 공간이 훨씬 더 작습니다. 원하는 대로 항상 Nano 서버 위에 레이어를 추가할 수 있습니다. 이 검사 예제를 보려면 .NET Core Nano Server Dockerfile을 실행합니다.