次の方法で共有


コンテナーを新しいバージョンの Windows オペレーティング システムにアップグレードする

適用対象: Windows Server 2025、Windows Server 2022、Windows Server 2019、Windows Server 2016

このトピックでは、Windows コンテナーを新しい Windows または Windows Server オペレーティング システムのバージョンにアップグレードする方法について説明します。 コンテナーをアップグレードする手順は 2 つあります。

  1. コンテナー ホストを新しいオペレーティング システムバージョンにアップグレードします。
  2. 新しいオペレーティング システム バージョンを使用して、新しいコンテナー インスタンスを作成します。

手記

現在の Windows ベース OS コンテナ イメージを "更新" (またはパッチ適用) するだけでよい場合は、コンテナの更新に関するページを参照し、ご利用のコンテナー用に最新のパッチ イメージを取得してください。

コンテナー ホストをアップグレードする

コンテナー ホストを新しい Windows または Windows Server バージョンにアップグレードするには、インプレース アップグレードまたはクリーン インストールを実行します。 コンテナー ホストと Windows コンテナーは 1 つのカーネルを共有するため、コンテナーの基本イメージの OS バージョン ホストと一致していることを確認する必要があります。 ただし、Hyper-V 分離を使用して、古い基本イメージを持つ新しいバージョンのコンテナー ホストを引き続き使用できます。 Windows Server 2022 では、プロセス分離 (プレビュー段階) でこのシナリオを実装できます。

新しい OS バージョンを使用して新しいコンテナー インスタンスを作成する

新しいコンテナー インスタンスを作成するには、次の手順を実行する必要があります。

  • コンテナーの基本イメージをプルする
  • 新しい基本イメージをポイントするように Dockerfile を編集する
  • 新しいアプリ イメージをビルドして実行する
  • イメージにタグを付けてレジストリにプッシュする

コンテナーの基本イメージをプルする

コンテナー ホストで新しい Windows OS バージョンをプルしたら、次の手順に従って基本イメージをアップグレードします。

  1. アップグレードする コンテナーの基本イメージ を選択します。

  2. 管理者として PowerShell セッションを開き、選択した OS のバージョンに応じて、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
    

オーケストレーターを使用してコンテナーをアップグレードする

Azure Kubernetes Service や AKS on Azure Stack HCI などのオーケストレーターを使用して、Windows コンテナーを再デプロイすることもできます。 オーケストレーターは、大規模にこれを行うための強力な自動化を提供します。 詳細については、「チュートリアル: Azure Kubernetes Service でアプリケーションを更新する」または「チュートリアル: Azure Kubernetes Service on Azure Stack HCIでアプリケーションを更新する」を参照してください。