共用方式為


將容器升級至新版本的 Windows 作業系統

適用于:Windows Server 2022、Windows Server 2019、Windows Server 2016

本主題描述如何將 Windows 容器升級至新的 Windows 或 Windows Server 作業系統版本。 升級容器有兩個步驟:

  1. 將容器主機升級至新的作業系統版本。
  2. 使用新的作業系統版本建立新的容器實例。

注意

如果您只需要 更新 (或修補) 您目前的 Windows 基底 OS 容器映射,請參閱 更新您的容器 ,以提取容器的最新修補程式映射。

升級容器主機

若要將容器主機升級至較新的 Windows 或 Windows Server 版本,您可以執行就地升級或全新安裝。 由於容器主機和 Windows 容器共用單一核心,因此您應該確定容器的基底映射 OS 版本 符合主機的基底映射 OS 版本。 不過,您仍然可以有較新版本的容器主機,且具有 具有 Hyper-V 隔離的較舊基底映射。 在 Windows Server 2022 中,您可以使用預覽) 中的進程隔離 (來實作此案例。

使用新的 OS 版本建立新的容器實例

若要建立新的容器實例,您需要:

  • 提取容器基底映射
  • 編輯 Dockerfile 以指向新的基底映射
  • 建置並執行新的應用程式映射
  • 標記映射並將映射推送至您的登錄

提取容器基底映射

在容器主機上提取新的 Windows OS 版本之後,請遵循下列步驟來升級基底映射:

  1. 選取您要升級至的 容器基底映射

  2. 以系統管理員身分開啟 PowerShell 會話,並根據您選擇的作業系統版本執行 docker pull 命令來提取映射:

    PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
    

    此範例會提取 Server Core 版本 20H2 基底映射。

  3. 映射下載完成時,您可以執行 docker images 命令來確認已提取新的映射,以傳回提取映射的清單:

    docker images
    

編輯 Dockerfile 以指向新的基底映射

接下來,您想要使用您提取的新基底映射來建立和啟動新的容器實例。 若要自動執行此程式,請編輯 Dockerfile 將其重新導向至新的映射。

注意

如果您想要升級目前正在執行之任何容器的映射,您必須使用 docker stop 停止容器,然後執行 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 之後,您需要建置並執行應用程式映射。

  1. 使用 docker build 建置映射,如下所示:

    docker build -t iss .
    
  2. 若要執行新建置的容器,請執行 docker run 命令:

    docker run -d -p 8080:80 --name iss-app iss
    

標記映射並將映射推送至您的登錄

若要允許其他主機重複使用新的映射,您應該標記容器映射,然後將容器映射推送至登錄。

  1. 使用 docker 標籤 來標記映射,如下所示:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. 使用 docker push 將映射推送至容器登錄,如下所示:

    docker push <login-server> iss
    

使用協調器升級容器

您也可以使用協調器來重新部署 Windows 容器,例如 Azure Stack HCI 上的 Azure Kubernetes Service 和 AKS。 協調器提供了強大的自動化功能而可大規模執行此作業。 如需詳細資訊,請參閱教學課程:在 azureStack HCI 上更新Azure Kubernetes Service中的應用程式Azure Kubernetes Service或教學課程:更新應用程式