다음을 통해 공유


Windows 및 컨테이너

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

컨테이너는 온-프레미스 및 클라우드의 다양한 환경에서 Windows 및 Linux 애플리케이션을 패키징하고 실행하기 위한 기술입니다. 컨테이너는 앱을 보다 쉽게 개발, 배포 및 관리할 수 있게 해주는 격리된 경량 환경을 제공합니다. 컨테이너는 빠르게 시작되고 중지되므로 수요 변화에 맞게 신속하게 조정해야 하는 앱에 적합합니다. 컨테이너의 간단한 특성 때문에 인프라의 밀도와 사용률을 높이기 위한 유용한 도구이기도 합니다.

컨테이너를 클라우드 또는 온-프레미스에서 실행하여 거의 모든 언어로 작성된 모놀리식 앱 또는 마이크로서비스를 지원하는 방법을 보여주는 그래픽입니다.

Microsoft 컨테이너 에코시스템

Microsoft는 컨테이너에서 앱을 개발하고 배포하는 데 도움이 되는 다양한 도구와 플랫폼을 제공합니다.

컨테이너 작동 방법

컨테이너는 호스트 운영 체제에서 애플리케이션을 실행하기 위해 격리된 경량 패키지입니다. 컨테이너는 다음 다이어그램과 같이 호스트 운영 체제의 커널(운영 체제의 매장된 배관이라고 생각할 수 있음)에서 실행됩니다.

컨테이너가 커널을 기반으로 실행되는 방법을 보여주는 아키텍처 다이어그램

컨테이너는 호스트 운영 체제의 커널을 공유하지만 이에 대한 무제한 액세스 권한을 얻지 않습니다. 대신 시스템의 격리된(가상화된 경우도 있음) 뷰를 가져옵니다. 예를 들어 컨테이너는 파일 시스템 및 레지스트리의 가상화된 버전에 액세스할 수 있지만 변경 내용은 컨테이너에만 영향을 주며 컨테이너가 중지되면 삭제됩니다. 데이터를 저장하기 위해 컨테이너는 Azure Disk 또는 Azure Files같은 파일 공유와 같은 영구 스토리지를 탑재할 수 있습니다.

컨테이너는 커널 위에 빌드되지만 커널은 앱이 실행해야 하는 모든 API 및 서비스를 제공하지는 않습니다. 이러한 API 및 서비스의 대부분은 사용자 모드에서 커널 위에서 실행되는 시스템 파일(라이브러리)에서 제공됩니다. 컨테이너는 호스트의 사용자 모드 환경에서 격리되므로 컨테이너에는 이러한 사용자 모드 시스템 파일의 자체 복사본이 필요합니다. 이러한 파일은 기본 이미지라고 하는 항목으로 패키지됩니다. 기본 이미지는 컨테이너를 빌드하는 기본 계층 역할을 하며 커널에서 제공하지 않는 운영 체제 서비스를 제공합니다.

컨테이너와 가상 머신 비교

컨테이너와 달리 VM(가상 머신)은 다음 다이어그램과 같이 자체 커널을 포함하여 완전한 운영 체제를 실행합니다.

VM이 호스트 운영 체제와 별도로 완전한 운영 체제를 실행하는 방법을 보여주는 아키텍처 다이어그램

컨테이너와 가상 머신은 각각 용도가 있습니다. 실제로 많은 컨테이너 배포는 특히 클라우드에서 컨테이너를 실행할 때 하드웨어에서 직접 실행하지 않고 가상 머신을 호스트 운영 체제로 사용합니다.

이러한 보완 기술의 유사성 및 차이점에 대한 자세한 내용은 컨테이너와 가상 머신을 참조하세요.

컨테이너 이미지

컨테이너 이미지에서 모든 컨테이너를 만듭니다. 컨테이너 이미지는 로컬 머신 또는 원격 컨테이너 레지스트리에 있는 계층 스택으로 구성된 파일의 번들입니다. 컨테이너 이미지는 앱이 실행되어야 하는 사용자 모드 운영 체제 파일로 구성됩니다. 이미지에는 앱의 런타임, 종속성 및 앱에 필요한 구성 파일도 포함됩니다.

Microsoft는 사용자 고유의 컨테이너 이미지를 빌드하기 위한 시작 지점으로 사용할 수 있는 여러 이미지(기본 이미지라고 함)를 제공합니다.

  • Windows - Windows API 및 시스템 서비스(서버 역할 제외)를 전부 포함합니다.
  • Windows Server - Windows API 및 시스템 서비스를 전부 포함합니다.
  • Windows Server Core - Windows Server API(즉, 전체 .NET framework)의 일부를 포함하는 작은 이미지입니다. 대부분의 서버 역할이 포함되지만, 모두가 포함되는 것은 아닙니다(예를 들어, 팩스 서버는 포함되지 않음).
  • Nano Server - 가장 작은 Windows Server 이미지이며 .NET Core API 및 일부 서버 역할에 대한 지원을 포함합니다.

컨테이너 이미지는 일련의 계층으로 구성됩니다. 각 계층은 함께 중첩될 때 컨테이너 이미지를 나타내는 파일 세트를 포함합니다. 컨테이너의 계층화된 특성으로 인해 항상 기본 이미지를 대상으로 지정하여 Windows 컨테이너를 빌드할 필요는 없습니다. 대신 원하는 프레임워크를 이미 전달하는 다른 이미지를 대상으로 지정할 수 있습니다. 예를 들어 .NET 팀은 .NET Core 런타임이 포함된 .NET Core 이미지를 게시합니다. 이를 통해 사용자는 .NET Core를 설치하는 프로세스를 복제할 필요가 없습니다. 대신 이 컨테이너 이미지의 계층을 다시 사용할 수 있습니다. .NET Core 이미지 자체는 Nano 서버에 기반하여 빌드됩니다.

자세한 내용은 컨테이너 기본 이미지를 참조하세요.

컨테이너 사용자

개발자용 컨테이너

컨테이너는 개발자가 더 품질 높은 앱을 더 신속하게 구축하여 제공하는 데 도움이 됩니다. 개발자는 컨테이너를 사용하여 여러 환경에 동일하게 몇 초 안에 배포되는 컨테이너 이미지를 만들 수 있습니다. 컨테이너는 호스트 파일 시스템에 영향을 주지 않고 개발 환경을 부트스트랩하고 팀 간에 코드를 공유하는 데 필요한 간편한 메커니즘으로 사용됩니다.

컨테이너는 이식 가능하고 다용도로 사용되며, 다양한 언어로 작성된 앱을 실행할 수 있고, Windows 10, 버전 1607 이상 또는 Windows Server 2016 이상을 실행하는 모든 머신과 호환됩니다. 개발자는 노트북 또는 데스크톱에서 로컬로 컨테이너를 만들고 테스트한 다음, 동일한 컨테이너 이미지를 회사의 프라이빗 클라우드, 퍼블릭 클라우드 또는 서비스 공급자에 배포할 수 있습니다. 컨테이너는 근본적으로 민첩하기 때문에 가상화된 대규모 클라우드 환경에서의 최신 앱 개발을 지원합니다. 개발자에게 가장 유용한 이점은 앱이 항상 지정한 라이브러리 버전을 가져오고 종속성과의 충돌을 방지하도록 환경을 격리하는 기능일 것입니다.

IT 전문가용 컨테이너

관리자는 컨테이너를 통해 업데이트 및 유지 관리가 용이하며 하드웨어 리소스를 더욱 완벽하게 활용하는 인프라를 만들 수 있습니다. IT 전문가들은 컨테이너를 사용하여 개발, QA, 프러덕션 팀에 표준화된 환경을 제공할 수 있습니다. 시스템 관리자들은 컨테이너를 사용하여 운영 체제 설치와 기반 인프라에서의 차이점을 골라낼 수 있습니다.

컨테이너의 대화형 모드를 사용하여 동일한 시스템에서 명령줄 도구의 충돌하는 인스턴스를 실행할 수도 있습니다.

컨테이너 오케스트레이션

오케스트레이터는 컨테이너 기반 환경을 설정할 때 인프라의 중요한 부분입니다. 오케스트레이터는 컨테이너화된 앱을 대규모로 관리할 때 필수적입니다. Docker 및 Windows를 사용하여 수동으로 몇 개의 컨테이너를 관리할 수 있지만 앱은 종종 5개, 10개 또는 수백 개의 컨테이너를 사용하여 오케스트레이터를 필수로 만듭니다.

컨테이너 오케스트레이터는 프로덕션 환경에서 대규모로 컨테이너를 관리하는 데 도움이 되도록 설계되었습니다. 오케스트레이터는 다음을 위한 기능을 제공합니다.

오케스트레이터는 컨테이너화된 앱을 대규모로 확장하여 다음을 위한 기능을 제공하는 데 도움이 됩니다.

  • 대규모 배포
  • 워크로드 예약
  • 상태 모니터링
  • 노드 장애 발생 시 장애 조치
  • 확장 또는 축소
  • 네트워킹
  • 서비스 검색
  • 앱 업그레이드 조정
  • 클러스터 노드 선호도

Windows 컨테이너에서 사용할 수 있는 다양한 오케스트레이터가 있습니다. Microsoft에서 제공하는 옵션은 다음과 같습니다.

Windows에서 컨테이너 사용해 보기

Windows Server 또는 Windows 10에서 컨테이너를 시작하려면 다음 문서를 참조하세요.

시나리오에 적합한 Azure 서비스를 결정하는 데 도움이 필요하면 Azure 컨테이너 서비스애플리케이션을 호스트하는 데 사용할 Azure 서비스 선택을 참조하세요.

리소스

Windows Server 컨테이너를 사용하기 위한 리소스를 보려면 다음 리소스를 참조하세요.