팁 (조언)
이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.
Docker에서 지원하는 운영 체제의 다양성과 .NET Framework와 .NET 8 간의 차이점을 고려할 때 사용 중인 프레임워크에 따라 특정 OS 및 특정 버전을 대상으로 지정해야 합니다.
Windows의 경우 Windows Server Core 또는 Windows Nano Server를 사용할 수 있습니다. 이러한 Windows 버전은 각각 .NET Framework 또는 .NET 8에 필요할 수 있는 다양한 특성(Windows Server Core의 IIS와 Nano Server의 Kestrel 같은 자체 호스팅 웹 서버)을 제공합니다.
Linux의 경우 공식 .NET Docker 이미지(예: Debian)에서 여러 배포판이 사용 가능하고 지원됩니다.
그림 3-1에서는 사용된 .NET 프레임워크에 따라 가능한 OS 버전을 볼 수 있습니다.
그림 3-1. .NET Framework 버전에 따라 대상으로 지정할 운영 체제
레거시 .NET Framework 애플리케이션을 배포할 때는 레거시 앱 및 IIS와 호환되는 Windows Server Core를 대상으로 해야 하지만 더 큰 이미지가 있습니다. .NET 8 애플리케이션을 배포할 때 클라우드 최적화되고 Kestrel을 사용하며 더 작고 더 빠르게 시작하는 Windows Nano Server를 대상으로 지정할 수 있습니다. Debian, Alpine 등을 지원하는 Linux를 대상으로 지정할 수도 있습니다.
다른 Linux 배포판 또는 Microsoft에서 제공하지 않는 버전이 있는 이미지를 원하는 경우 사용자 고유의 Docker 이미지를 만들 수도 있습니다. 예를 들어 기존 .NET Framework 및 Windows Server Core에서 실행되는 ASP.NET Core를 사용하여 이미지를 만들 수 있습니다. 이는 Docker의 일반적인 시나리오가 아닙니다.
Dockerfile 파일에 이미지 이름을 추가하는 경우 다음 예제와 같이 사용하는 태그에 따라 운영 체제 및 버전을 선택할 수 있습니다.
이미지 | 코멘트 |
---|---|
mcr.microsoft.com/dotnet/runtime:8.0 | .NET 8 다중 아키텍처: Docker 호스트에 따라 Linux 및 Windows Nano Server를 지원합니다. |
mcr.microsoft.com/dotnet/aspnet:8.0 | ASP.NET Core 8.0 다중 아키텍처: Docker 호스트에 따라 Linux 및 Windows Nano Server를 지원합니다. aspnetcore 이미지에는 ASP.NET Core에 대한 몇 가지 최적화가 있습니다. |
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim | Linux Debian 배포판의 .NET 8 런타임 전용 버전 |
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 | Windows Nano Server의 .NET 8 런타임 전용(Windows Server 버전 1809) |
.NET