2020 年 2 月 11 日のセキュリティ更新プログラムのリリースで Windows Server コンテナーを使用すると、問題が発生する可能性がある

適用先
Windows Server 2016, all editions Windows Server 2019, all editions Windows Server version 1803 Windows Server version 1809 Windows Server, version 1903, all editions Windows Server, version 1909, all editions

最終更新日: 2020 年 3 月 10 日午前 10:00 PST

現象

コンテナー ホストまたはコンテナー イメージに 2020 年 2 月 11 日のセキュリティ更新プログラムが含まれている場合、Windows コンテナー ホストとWindows Server コンテナー イメージの両方が 2020 年 2 月 11 日のセキュリティ更新プログラムと一致しない限り、Windows Server コンテナーの使用時に問題が発生する可能性があります。

コンテナーを実行または構築する場合の現象には、次のようなものがあります。

  1. コマンド "docker run" または "docker build" を実行すると、出力が受信されず、応答しなくなる可能性があります。
  2. Kubernetes の Windows サーバー コンテナーが 「実行中」状態に達していません。
  3. "docker: error response from daemon: container <id> エラーが発生しました。Windows システム呼び出しで Start: failure: wait operation がタイムアウトしました。(0x102)。"
  4. コンテナー内で実行されている 32 ビットのアプリケーションまたはプロセスは、サイレントに失敗する可能性があります。

原因

この問題は、ユーザー モードとカーネル モードの間でインターフェイスを変更する必要があるセキュリティの変更の結果です。 プロセス分離コンテナーは、カーネル モードをコンテナー ホストとコンテナー イメージと共有するため、更新プログラムが含まれていないユーザー モード コンポーネントは、新しいセキュリティで保護されたカーネル インターフェイスと互換性がなく、セキュリティで保護されていませんでした。

解決策と回避策

Windows コンテナー ドキュメント サイトの Windows コンテナーのバージョンの互換性Windows Server コンテナーの更新セクションに新しい更新ガイダンスを追加しました。  これには、更新プログラムの互換性とマトリックスの詳細も含まれます。  この記事に記載されている特定の問題については、以下の解決策と緩和策を参照してください。

「実行されていない」と「32 ビット アプリケーションがサイレントに失敗する」問題 (現象 1、2、3、4) の解決策:

2020 年 2 月 18 日に、この記事の現象 (1、2、3、4) に関する問題を修正するために、更新されたコンテナー イメージがリリースされました。  これらの問題が発生する場合は、2020 年 2 月 11 日のセキュリティ更新プログラムのリリースと 2020 年 2 月 18 日にリリースされたコンテナー イメージにコンテナー ホストを更新することをお勧めします。   メモ 2020 年 2 月 18 日リリースは、コンテナー イメージ専用です。  2020 年 2 月 11 日のセキュリティ更新プログラムは、コンテナー ホストの最新の更新プログラムです。

環境内の問題を解決するには、pull コマンドを再実行して、ベース OS イメージまたは IIS や .NET などの該当するコンテナー イメージWindows Server更新し、自動化パイプラインを再実行して、2020 年 2 月 18 日のコンテナー イメージでコンテナー イメージを使用してコンテナーを再構築します。

大事な この記事の問題の回避策としてプル タグまたはオートメーションを変更した場合は、変更を以前のプル タグに戻す必要があります。  特定のバージョンを使用する必要がなくなります。

「32 ビット アプリケーションがサイレントに失敗する」問題 (現象 4) の軽減策:

上記のように、コンテナー ホストを 2020 年 2 月 11 日のセキュリティ更新プログラム に更新することを強くお勧めします 。 2020 年 2 月 11 日のセキュリティ更新プログラムにコンテナー ホストを更新できない場合は、コンテナー イメージのビルドバージョンとリビジョン バージョンを、コンテナー ホスト オペレーティング システムのビルドバージョンとリビジョン バージョンに一致させる必要があります。  コンテナー ホストのバージョンをチェックする方法については、こちらの記事を参照してください。コンテナー ホストからバージョンを取得したら、次のコマンドを使用してコンテナー イメージのバージョンをプルできます (環境で適用されるWindows Server基本 OS イメージとバージョンを調整する必要があります)。 たとえば、Windows Server Core コンテナーを使用している場合は、次のようになります。

docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 10.0.17763.1040>

コンテナー ホストとコンテナー イメージのバージョンが一致すると、実行やビルドなどのコンテナー コマンドを再開できるようになります。

メモ プル タグまたはオートメーションの変更は、アプリがサイレント モードで失敗している場合にのみお勧めします。

参考資料

次の一覧は、コンテナー イメージをサポートするWindows Serverバージョンと、2020 年 1 月 14 日と 2020 年 2 月 11 日にリリースされたセキュリティ更新プログラムのバージョン番号、および 2020 年 2 月 18 日にのみリリースされたコンテナー イメージを示しています。  フローティング タグでバージョンを指定しないと、2020 年 2 月 18 日にリリースされたコンテナー イメージが自動的にプルされます。

Windows Server のバージョン (フローティング タグ) 2020 年 1 月 14 日リリースの更新プログラム バージョン 2020 年 2 月 11 日の更新プログラム バージョン 2020 年 2 月 18 日の更新プログラム バージョン
Windows Server 2016 (ltsc2016) 10.0.14393.3443 10.0.14393.3504 10.0.14393.3506
Windows Server Version 1803 (1803) 10.0.17134.1246 10.0.17134.1304 10.0.17134.1305
Windows Server 2019 (ltsc2019)
Windows Serverバージョン 1809 (1809)
10.0.17763.973 10.0.17763.1039 10.0.17763.1040
Windows Serverバージョン 1903 (1903) 10.0.18362.592 10.0.18362.657 10.0.18362.658
Windows Serverバージョン 1909 (1909) 10.0.18363.592 10.0.18363.657 10.0.18363.658

コンテナーで Azure Marketplace 仮想マシン イメージを使用している場合は、2020 年 2 月のイメージが現在利用可能です。 これらのイメージを使用して上記の問題や現象が発生しないようにしてください。  詳細については、KB4540981 を参照してください。

Windows コンテナー イメージの完全なリストについては、こちらの Docker Hub ページを参照してください。

Windows Server コンテナーの詳細については、「https://aka.ms/containers」を参照してください。