如有關於 Windows Server 容器的問題,請查看下列清單中的答案。
Linux 容器和 Windows Server 容器有何差異?
Linux 和 Windows Server 都會在其核心和核心作業系統內實作類似的技術。 差異來自於平台以及在容器內執行的工作負載。
客戶在使用 Windows Server 容器時,可以整合現有的 Windows 技術,例如 .NET、ASP.NET 和 PowerShell。
在 Windows 上執行容器的必要條件為何?
容器是在 Windows Server 2016 時引進平台的。 若要使用容器,您需要Windows Server 2016、Windows 10年度更新 (1607 版) 或更新版本,或Windows 10 IoT 企業版或更新版本。 若要深入了解,請閱讀系統需求。
Kubernetes 支援哪些 Windows 作業系統?
Windows 容器的支援取決於其執行所在的 Kubernetes 平臺。 Azure Kubernetes Service (Azure Stack HCI 和 Windows Server 上的 AKS) 和 AKS 同時支援 Windows Server 2019 和 Windows Server 2022 Windows 節點。 Azure Kubernetes Service Edge Essentials 支援 Windows Server 2019、Windows Server 2022 和 Windows 10/11 企業版或專業版。 如需 Windows 容器版本相容性,請參閱 Windows 容器版本相容性。
如何修補我的 Windows 節點?
必須在 Azure Stack HCI 和 Azure Stack HCI 上的 AKS 和 AKS 中升級 Windows Server 節點,才能取得最新的修補程式修正和更新。 這些服務的 Windows 節點上未啟用 Windows 更新。 不過,這兩個服務都提供更新 Windows 節點映射的機制。
我的 Windows Server 容器是否可以使用 gMSA?
是,已加入網域的 Windows 背景工作角色節點支援 gMSA。 若要深入了解如何使用 gMSA 搭配 Windows 容器,請參閱針對 gMSA 準備 Windows 節點。
什麼是 WCOW 和 LCOW?
WCOW 適用于「Windows 上的 Windows 容器」。LCOW 適用于「Windows 上的 Linux 容器」。
容器要如何獲得授權? 我可以執行的容器數目是否有限制?
Windows 容器映像的 EULA 會根據擁有有效授權主機 OS 的使用者來說明使用方式。 使用者可以執行的容器數目取決於主機 OS 版本和容器在執行時所使用的隔離模式,以及執行這些容器是為了開發/測試還是生產。
主機 OS | 程序隔離的容器限制 | Hyper-V 隔離的容器限制 |
---|---|---|
Windows Server Standard | 無限制 | 2 |
Windows Server Datacenter | 無限制 | 無限制 |
Windows 專業版和企業版 | 無限制 (僅適用於測試或開發) | 無限制 (僅適用於測試或開發) |
Windows 10 IoT 核心版 | 無限制* | 無限制* |
Windows IoT 企業版 | 無限制* | 無限制* |
Windows Server 容器映像的用途是藉由讀取該版本所支援的虛擬化客體數目來決定的。
注意
*IoT 版本 Windows 上的容器生產使用量取決於您是否已同意 Windows Core 執行時間映射的 Microsoft 商業使用規定或 Windows IoT 企業版裝置授權 (「Windows IoT 商業合約」) 。 Windows IoT 商業合約中的其他條款和限制適用於在生產環境中使用容器映像。 請閱讀容器映像 EULA,以了解允許和不允許的確切功能。
身為開發人員,我是否必須為每一種容器重新撰寫應用程式?
不可以。 Windows 容器映像在 Windows Server 容器與 Hyper-V 隔離之間是通用的。 容器類型的選擇會在您啟動容器時決定。 就開發人員的觀點而言,Windows Server 容器和 Hyper-V 隔離只是風格上的不同。 兩者會提供相同的開發、程式設計和管理體驗,而且均是開放且可延伸的,並且也會包含相同層級的 Docker 整合和支援。
開發人員可以使用 Windows Server 容器來建立容器映像,並將其部署在 Hyper-V 隔離中 (反之亦然),除了須指定適當的執行階段旗標以外,不需進行任何變更。
如果速度是關鍵考量,Windows Server 容器也會提供較高的密度和效能 (例如,相較於巢狀設定,加速所需時間較短,執行階段效能更快速)。 Hyper-V 隔離名副其實,可提供更高的隔離性,確保一個容器中執行的程式碼不會危害或影響到主機作業系統或在相同主機上執行的其他容器。 這對於有裝載非信任程式碼需求的多租用戶案例會有所幫助,包括 SaaS 應用程式和運算裝載。
是否可以在 Windows 10 上以程序隔離模式執行 Windows 容器?
從 Windows 10 2018 年 10 月更新開始,您已可以使用程序隔離來執行 Windows 容器,但必須先在使用 docker run
執行容器時使用 --isolation=process
旗標來直接要求程序隔離。 程式隔離在 Windows 10 11 專業版 (或更新版本) 、Windows 10 企業版 (或更新版本) 、Windows 10 IoT 核心版和 Windows 10 IoT 企業版 (更新版本) 上相容。
如果您想要以這種方式執行 Windows 容器,則必須確定主機所執行的是 Windows 10 組件 17763+,而且您擁有的 Docker 版本具有 Engine 18.09 或更新版本。
警告
除了 IoT 核心版和 IoT 企業版主機外 (在接受其他條款和限制後),這項功能僅適用於開發和測試。 您應該繼續使用 Windows Server 作為生產部署的主機。 藉由使用這項功能,您也必須確定主機和容器版本標籤和組建編號相符,否則容器可能無法啟動或顯示未定義的行為。
如何讓容器映像可在空氣隔離的機器上使用?
Windows 容器基底映像包含其散發套件會受到授權限制的成品。 當您建置這些映像並將其推送至私人或公用登錄時,您會注意到系統永遠不會推送基底層。 相反地,我們會使用外部層的概念,以指向位於 Azure 雲端儲存體中的實際基底層。
當您有一部空氣隔離的機器,且只能從私人容器登錄的位址提取映像時,這會讓事情變得複雜。 在此情況下,嘗試遵循外部層以取得基底映像可能會沒有用。 若要覆寫外部層行為,您可以在 Docker 精靈中使用 --allow-nondistributable-artifacts
旗標。
重要
使用此旗標並非表示您就不需要遵守 Windows 容器基底映像授權的條款;您還是不得對外公佈 Windows 內容或將其用於第三方重新散發。 您可以在自己的環境內使用。
其他意見反應
想在常見問題集中新增某些內容嗎? 請在 [留言] 區段開啟新的意見反應問題,或使用 GitHub 為此頁面設定提取要求。