T
TechInsights
목록으로
BackEnd•2024. 12. 11.

Windows Container 에 대해 알아보기

지마켓
지마켓 Engineering Team
Windows Container 에 대해 알아보기

핵심요약

원문 보기

Windows Container를 활용하면 Windows OS에 종속적인 .NET Framework 애플리케이션을 컨테이너 환경에서 실행할 수 있으며, 호스트 OS와 컨테이너 이미지 간의 호환성 문제를 Hyper-V를 통해 해결하고 컨테이너화하는 과정을 상세히 다룹니다.

Windows Container를 활용한 .NET Framework 애플리케이션 컨테이너화

Windows Container 개요 및 주요 특징

  • Windows Container는 Windows 애플리케이션을 Windows Server 환경에서 격리하여 실행하는 기능으로, Windows Server 2016부터 지원됩니다.
  • Linux 컨테이너와 유사하나, Windows 커널을 기반으로 동작하는 것이 특징입니다.

Windows Container 기본 이미지 및 호환성

  • Microsoft에서 제공하는 4가지 기본 이미지(Nano Server, Server Core, Windows, Windows Server)를 통해 빌드가 가능하며, 각 이미지의 기능 포함 여부와 크기가 다릅니다.
  • 호환성은 Windows Container의 중요한 특이점으로, Host 서버의 Windows OS 버전과 Container 이미지의 커널 모드 버전이 일치하지 않으면 구동이 불가능합니다.
  • 예시로, Windows 10 Host에서는 Windows Server 2022 기반 이미지를 직접 실행할 수 없으며, "a Windows version ... is incompatible with a ... host" 오류가 발생합니다.

.NET Framework 애플리케이션 컨테이너 실행 과정

  • .NET Framework 4.5.2 기반 ASP.NET Application을 생성하고 게시하여 배포 준비를 합니다.
  • 호환성 문제 해결을 위해 Windows 10 Host 위에 Hyper-V를 활용하여 Windows Server 2022 가상 컴퓨터를 구축합니다.
  • 가상 컴퓨터 내부에 중첩 가상화를 활성화(Set-VMProcessor -ExposeVirtualizationExtensions $true)하고, Hyper-V 및 Containers Windows Feature를 설치한 후 Docker CE를 설치합니다.
  • 게시된 ASP.NET 애플리케이션과 Dockerfile을 사용하여 컨테이너 이미지를 빌드하고 (FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022, WORKDIR, COPY, EXPOSE 80), docker run -p 80:80 -d my-aspnet-app:latest 명령으로 실행하여 웹 접근을 확인합니다.

결론 및 활용 방안

  • Windows Container는 Windows OS에 종속적인 서비스를 컨테이너 환경으로 전환하는 효과적인 방법입니다.
  • Dockerfile 내에서 Windows COM 모듈 설치, IIS 설정, Windows registry 설정 등 필요한 작업을 정의함으로써 개발 및 운영 환경 구축 리소스를 크게 단축할 수 있습니다.
#BackEnd#Infra
지마켓
지마켓

지마켓 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기