コンテナーを新しいバージョンの Windows オペレーティング システムにアップグレードする
適用対象: Windows Server 2025、Windows Server 2022、Windows Server 2019、Windows Server 2016
このトピックでは、Windows コンテナーを新しい Windows または Windows Server オペレーティング システムのバージョンにアップグレードする方法について説明します。 コンテナーをアップグレードする手順は 2 つあります。
- コンテナー ホストを新しいオペレーティング システムバージョンにアップグレードします。
- 新しいオペレーティング システム バージョンを使用して、新しいコンテナー インスタンスを作成します。
手記
現在の Windows ベース OS コンテナ イメージを "更新" (またはパッチ適用) するだけでよい場合は、コンテナの更新に関するページを参照し、ご利用のコンテナー用に最新のパッチ イメージを取得してください。
コンテナー ホストをアップグレードする
コンテナー ホストを新しい Windows または Windows Server バージョンにアップグレードするには、インプレース アップグレードまたはクリーン インストールを実行します。 コンテナー ホストと Windows コンテナーは 1 つのカーネルを共有するため、コンテナーの基本イメージの 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 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 が更新されたら、アプリ イメージをビルドして実行する必要があります。
こちらに示すように、docker build を使用してイメージを作成します。
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 push 使用して、次のようにイメージをコンテナー レジストリにプッシュします。
docker push <login-server> iss
オーケストレーターを使用してコンテナーをアップグレードする
Azure Kubernetes Service や AKS on Azure Stack HCI などのオーケストレーターを使用して、Windows コンテナーを再デプロイすることもできます。 オーケストレーターは、大規模にこれを行うための強力な自動化を提供します。 詳細については、「チュートリアル: Azure Kubernetes Service でアプリケーションを更新する」または「チュートリアル: Azure Kubernetes Service on Azure Stack HCIでアプリケーションを更新する」を参照してください。