使用含 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 Server 容器時可能會遇到問題,除非 Windows 容器主機和 Windows Server 容器映像都與 2020 年 2 月 11 日的安全性更新匹配。

執行或構建容器時的症狀可能包括:

  1. 當你執行「docker run」或「docker build」指令時,可能無法收到輸出,導致無法回應。
  2. Kubernets 中的 Windows Server 容器未達到「執行中」狀態。
  3. 您會收到錯誤訊息:「docker: Error response from daemon: container <id> 在 Start: failure in a Windows 系統呼叫中遇到錯誤:等待操作逾時。 (0x102) 。」
  4. 在容器內執行的 32 位應用程式或進程可能會靜默失敗。

原因

此問題是安全性變更的結果,該變更需要在使用者模式和核心模式之間更改介面。 由於進程隔離容器與容器主機和容器映像共用核心模式,因此沒有更新的使用者模式元件與新的安全核心介面不相容且不安全。

解決方法和因應措施

我們在 Windows 容器版本相容性更新 Windows 伺服器容器部分中新增了 Windows 容器文件網站的新版更新指南。  這還包括有關更新相容性和矩陣的詳細資訊。  有關本文中列出的具體問題的資訊,請參閱下面的解決方法和因應措施。

解決「不執行」和「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 指令更新 Windows Server 基礎作業系統映像檔或你適用的容器映像檔(如 IIS 或 .NET),並重新執行自動化管線,利用 2020 年 2 月 18 日的容器映像檔重建容器。

重要 如果你為了解決本文問題而更改了拉取標籤或自動化,應該還原到之前的拉取標籤。  您不再需要使用特定版本。

減輕「32 位應用程式靜默失敗」問題 (症狀 4):

我們 強烈建議您如 上所述,將容器主機更新至 2020 年 2 月 11 日的安全更新。 如果無法將容器主機更新為 2020 年 2 月 11 日的安全性更新,則需要將容器映像的組建和修訂版本與容器主機作業系統的組建和修訂版本進行匹配。  關於如何檢查容器主機版本的說明,請參閱這篇文章。一旦你從容器主機取得版本,就可以用以下指令拉取容器映像版本 (你需要根據環境) 調整Windows Server基礎作業系統映像檔和版本。 例如,如果您使用 Windows Server Core 容器:

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

容器主機和容器映射版本匹配後,您應該能夠恢復容器指令 (如 run 或 build)。

我們只建議在遇到無聲失敗的應用程式時更改拉取標籤或自動化。

參考資料

以下列表顯示我們支援容器映像檔的 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,版本 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 Virtual Machine 映像與容器一起使用,則 2020 年 2 月映像現在可用。 使用這些映像時,您不應遇到上述問題或症狀。  如需詳細資訊,請參閱 KB4540981

有關 Windows 容器映像的完整清單,請參閱此處的 Docker Hub 頁面。

欲了解更多Windows Server容器的詳細資訊,請參閱 https://aka.ms/containers