探索 Docker
Contoso Windows Server 系統管理員必須司解 Docker、Docker 容器、容器執行時間,以及它們在 Windows Server 上執行的方式。
Docker 和容器執行時間概觀
Docker 是將開放原始碼工具、解決方案和雲端架構服務集合在一起的公司,可提供將應用程式程式碼 (也稱為容器化) 封裝為軟體開發的標準化單位的通用模型。 這個標準化的單元 (稱為「Docker 容器」) 是包裝在完整檔案系統中的軟體,包含執行所需的所有項目:程式碼、執行階段、系統工具、系統程式庫,以及您可以在伺服器上安裝的任何項目。
為了支援 Docker 容器,有兩個基礎元件會開始運作,通常會由執行容器的使用者隱藏或未注意到。 這兩個元件是容器執行時間和支援容器的作業系統功能。 在 Windows Server 上支援 Docker 容器的功能稱為「容器」。 此功能會與稱為主機計算服務 (HCS) 的元件互動。 HCS 負責協調 Windows Server 上的虛擬化平台,同時是支援容器和 Hyper-V VM 的較低 API。
排程容器的作業系統功能上方是容器執行時間。 容器執行時間位於 CLI、UI 或容器協調器與基礎作業系統功能之間。 容器執行時間的工作可將命令從使用者或容器協調器轉譯為作業系統平台功能。 例如,當您要求 Docker CLI 執行新容器時,CLI 會與容器執行時間互動,進而以其瞭解的方式將命令傳送至作業系統。 容器執行時間的存在使上述層不需要知道作業系統預期接收命令的方式。 從使用者的觀點來看這很重要,因為不同的容器執行時間會有不同的特性和功能。
有許多不同的容器執行時間可用於在 Windows Server 上執行容器。 最常見的是:
- Moby 專案。 Moby 是 Docker 組建其商業專案的開放原始碼專案。 在 Windows Server 上,Moby 是一個社群支援的專案,可利用 dockerd 作為容器執行時間。 Moby 非常適合用於在 Windows Server 上測試容器。 安裝後,Moby 不僅會提供 Dockerd 容器執行時間,也會提供與 Windows Server 上容器互動的 CLI。
警告
Windows 和 Windows Server 上的 Dockerd 使用 HCSv1。 在 Linux 上,Moby 已轉移為使用容器作為容器執行時間。 目前正在進行的工作是利用較新的和改良的 HCSv2 介面,將 Moby 移至 Windows 上的 containerD。
ContainerD。 ContainerD 是開放原始碼容器執行時間,最近已建立為 Kubernetes 環境的慣用容器執行時間。 ContainerD 可在生產環境中使用,而且是 Windows Server 2022 在 Kubernetes 環境中執行時的預設容器執行時間。 安裝後,ContainerD 不會提供與容器互動的 CLI。 您可以改用其他的開放原始碼 CLI,例如 CRICTL 或 NerdCTL。
將容器執行時間 (MCR)。 MCR 正式稱為 Docker Enterprise Edition (Docker EE) ,提供與 Docker CE 相同的功能,以及專為企業部署打造的額外功能。 使用 Docker Swarm 作為容器協調器時,建議使用 MCR。 安裝後,MCR 會提供容器執行時間和與 Docker 和 Moby 相同的 CLI 體驗。
注意
另一個稱為 Docker Desktop for Windows 的元件可在 Windows 10 和 11 上用於開發目的。
在 Windows Server 上執行容器
在 Windows Server 上執行容器前,您必須確定要在環境中使用的容器執行時間。 容器執行時間會決定您需要遵循的安裝流程。 如需 Windows Server 選項以及如何安裝每個選項的相關詳細資訊,請參閱如何準備適用於容器的 Window Server 主機。
重要
如果您打算針對容器使用 Hyper-V 隔離模式,也必須在主機伺服器上安裝 Hyper-V 伺服器角色。 此外,如果主機伺服器本身就是 VM,您必須先啟用巢狀虛擬化,然後再安裝 Hyper-V 角色。 因為 Windows 10 和 11 預設會在 Hyper-V 隔離模式中執行 Windows 型容器,所以若要支援此預設模式,必須在 Windows 10 和 11 主機環境上安裝 Hyper-V 功能。
Docker Hub
容器是以容器映像為基礎,而這些映像可以儲存在「存放庫」中。 存放庫可作為您建立、儲存、保護及共用容器映像的位置。 Docker Hub 是由 Docker 管理的網頁型線上程式庫服務,您可以:
在線上存放庫中註冊、儲存及管理您自己的 Docker 影像,然後與其他人共用。
從軟體供應商、開放原始碼專案和其他社群成員存取超過 100,000 個容器映像。
Microsoft Container Registry
Microsoft 會透過 mcr.microsoft.com 的 Microsoft Container Registry (MCR) 來提供容器映像。 這是 Microsoft 提供容器映像的官方來源。 無論探索到 Microsoft 容器映像的位置為何,提取來源都是 mcr.microsoft.com。
注意
Azure Container Registry 是一項 Azure 服務,可讓您用來建立自己的容器映像存放庫。 您可以使用此存放庫,來儲存和管理所有容器部署類型的映像。