컨테이너를 새 버전의 Windows 운영 체제로 업그레이드
적용 대상: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
이 항목에서는 Windows 컨테이너를 새 Windows 또는 Windows Server 운영 체제 버전으로 업그레이드하는 방법에 대해 설명합니다. 컨테이너를 업그레이드하는 단계는 두 가지입니다.
- 컨테이너 호스트를 새 운영 체제 버전으로 업그레이드합니다.
- 새 운영 체제 버전을 사용하여 새 컨테이너 인스턴스를 만듭니다.
메모
현재 Windows 기본 OS 컨테이너 이미지를 업데이트(또는 패치)해야 하는 경우, 컨테이너를 업데이트하여 최신 패치 이미지를 가져오는 방법에 대해 참조하세요.
컨테이너 호스트 업그레이드
컨테이너 호스트를 최신 Windows 또는 Windows Server 버전으로 업그레이드하려면 현재 위치 업그레이드 또는 새로 설치를 수행할 수 있습니다. 컨테이너 호스트와 Windows 컨테이너는 단일 커널을 공유하므로 컨테이너의 기본 이미지 OS 버전 호스트일치하는지 확인해야 합니다. 그러나 이전 기본 이미지가 있는 컨테이너 호스트의 최신 버전을 계속 사용할 수 있습니다. Hyper-V 격리. Windows Server 2022에서는 프로세스 격리(미리 보기)를 사용하여 이 시나리오를 구현할 수 있습니다.
새 OS 버전을 사용하여 새 컨테이너 인스턴스 만들기
새 컨테이너 인스턴스를 만들려면 다음을 수행해야 합니다.
- 컨테이너 기본 이미지 끌어오기
- 새 기본 이미지를 가리키도록 Dockerfile 편집
- 새 앱 이미지 빌드 및 실행
- 레지스트리에 이미지 태그 지정 및 푸시
컨테이너 기본 이미지 끌어오기
컨테이너 호스트에서 새 Windows OS 버전을 가져온 후 아래 단계에 따라 기본 이미지를 업그레이드합니다.
업그레이드하려는 컨테이너 기본 이미지 선택합니다.
관리자 권한으로 PowerShell 세션을 열고 선택한 OS 버전에 따라 docker pull 명령을 실행하여 이미지를 끌어오세요.
PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
이 예제에서는 Server Core 버전 20H2 기본 이미지를 가져옵니다.
이미지 다운로드가 완료되면 docker images 명령을 실행하여 끌어온 이미지 목록을 반환하여 새 이미지가 끌어왔는지 확인할 수 있습니다.
docker images
새 기본 이미지를 가리키도록 Dockerfile 편집
다음으로, 끌어온 새 기본 이미지를 사용하여 새 컨테이너 인스턴스를 만들고 시작하려고 합니다. 이 프로세스를 자동화하려면 Dockerfile을 편집하여 새 이미지로 리디렉션합니다.
메모
현재 실행 중인 컨테이너에 대한 이미지를 업그레이드하려면 docker를 사용하여 컨테이너를 중지한 다음 중지한 다음 docker rm 실행하여 컨테이너를 제거해야 합니다.
텍스트 편집기에서 Dockerfile을 열고 업데이트합니다. 다음 예제에서는 Dockerfile이 IIS 애플리케이션을 사용하여 Server Core 20H2로 업데이트됩니다.
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN PowerShell Install-WindowsFeature NET-Framework-45-ASPNET
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["ServiceMonitor.exe", "w3svc"]
새 앱 이미지 빌드 및 실행
Dockerfile이 업데이트되면 앱 이미지를 빌드하고 실행해야 합니다.
아래와 같이 docker 빌드 사용하여 이미지를 빌드합니다.
docker build -t iss .
새로 빌드된 컨테이너를 실행하려면 docker run 명령을 실행합니다.
docker run -d -p 8080:80 --name iss-app iss
레지스트리에 이미지 태그 지정 및 푸시
다른 호스트가 새 이미지를 다시 사용할 수 있도록 하려면 태그를 지정한 다음 컨테이너 이미지를 레지스트리에 푸시해야 합니다.
docker 태그 사용하여 이미지에 다음과 같이 태그를 지정합니다.
docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
다음과 같이 docker 푸시 사용하여 이미지를 컨테이너 레지스트리에 푸시합니다.
docker push <login-server> iss
오케스트레이터를 사용하여 컨테이너 업그레이드
Azure Stack HCI의 Azure Kubernetes Service 및 AKS와 같은 오케스트레이터를 사용하여 Windows 컨테이너를 다시 배포할 수도 있습니다. 오케스트레이터는 대규모로 이 작업을 수행하기 위한 강력한 자동화를 제공합니다. 자세한 내용은 자습서: Azure Kubernetes Service 애플리케이션 업데이트 또는 자습서: Azure Stack HCIAzure Kubernetes Service에서 애플리케이션 업데이트를 참조하세요.