如何在 Windows Server 上執行 Docker 容器

要在 Windows Server 上執行 Docker 容器,請安裝 Windows 容器執行時間環境,拉取一個為相容的 Windows 版本所建置的映像,然後啟動它docker run。以下步驟使用 Microsoft 官方文件中的 Moby(Docker CE)安裝腳本和 Docker CLI。許多較早的教學使用 DockerMsftProvider;而 Microsoft 快速入門指南現在介紹了一種不同的、基於腳本的安裝方法。

安裝前請選擇運行時環境

微軟的 Windows Server 容器指南列出了 Moby(Docker CE)、Mirantis Container Runtime (MCR) 和 containerd 作為執行時間選項。 Moby 提供此處使用的熟悉的 Docker 命令列。對於廠商支援的生產運作時,微軟的本機部署支援指南建議使用 MCR;安裝前請查看最新的 Mirantis 相容性清單、授權協議和支援條款。微軟的 Windows 容器安裝指南對這些選項進行了詳細說明。

Docker Desktop 不支援 Windows Server。原生 Windows Server 容器運作的是 Windows 映像;它們無法直接執行 Linux 映像,因為容器共用宿主機核心。如果您的工作負載需要 Linux 容器,請使用 Linux 主機或 Linux 虛擬機器。微軟已棄用 Windows Server 上的 Linux 容器 (LCOW),且伺服器版本不支援 Docker Desktop。請參閱微軟的 Windows Server 支援原則和Docker 的 Windows 安裝指南。

1. 檢查 Windows 伺服器主機

使用具有安裝 Windows 功能權限的帳戶登錄,然後以管理員身分開啟 PowerShell。記錄伺服器版本和建置訊息,以便稍後選擇符合的容器鏡像:

Get-CimInstance Win32_OperatingSystem | Select Caption, Version, BuildNumber
用於檢查 Windows Server 版本和內部版本的管理員 PowerShell 命令
在選擇 Windows 容器映像標籤之前,請檢查主機版本。

保持主機補丁更新。如果伺服器是 Hyper-V 虛擬機,且您打算執行 Hyper-V 隔離容器,則該虛擬機器需要巢狀虛擬化;進程隔離容器不使用額外的 Hyper-V 層。在選擇隔離模式之前,請參閱 Microsoft 的Windows 容器主機需求。

2. 下載微軟的 cker CE 安裝程序

微軟目前的快速入門指南使用來自其 Windows-Containers 程式碼庫的 PowerShell 腳本。在提升權限的 PowerShell 視窗中,下載該腳本:

Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -OutFile install-docker-ce.ps1
使用 PowerShell 指令下載 Microsoft 的 Windows 容器 Docker CE 安裝腳本

對於託管伺服器,請在執行下載的程式碼之前,請遵循貴組織的腳本審查流程。官方安裝頁面將此腳本標識為 Moby/Docker CE 安裝方法,並指出它會啟用容器相關的作業系統功能並安裝執行時間環境。

3. 安裝運行時環境

從腳本儲存的目錄執行下載的腳本:

.install-docker-ce.ps1

等待安裝完成,並按照任何重新啟動提示進行操作。此腳本會配置 Windows 容器主機並安裝 Docker Engine 元件。如果 PowerShell 由於貴組織的執行策略而阻止該腳本運行,請使用已核准的軟體部署流程,而不是變更機器範圍的政策。

在 Windows Server 上執行 Docker CE 安裝腳本的管理員 PowerShell
以管理員身分執行 PowerShell 會話,並完成任何要求的重新啟動操作。

4. 確認 Docker Engine 可用

安裝完成後(如果提示重啟,請重新啟動),重新登入並檢查服務和用戶端到守護程式的連線:

Get-Service docker
docker version
docker info

Get-Service應該報告 Docker 服務正在運行。在配置中docker version,確認客戶端和伺服器部分都顯示出來。如果伺服器部分缺失,請檢查服務狀態以及是否仍需要重新啟動設定。

PowerShell 會檢查 Docker Engine 服務以及 Docker 用戶端和服務部分。
正在運行的服務和兩個 Docker 版本部分都表明 CLI 可以連接到引擎。

5. 將圖像標籤與主機匹配

與典型的 Linux 鏡像相比,Windows 容器鏡像與宿主作業系統版本的關聯性更強。首先,請查看相應的長期服務通道 (LTSC) 標籤:

Windows 伺服器主機伺服器核心圖像標籤
Windows Server 2025ltsc2025
Windows Server 2022ltsc2022
Windows Server 2019ltsc2019

確保主機和鏡像版本一致是最穩健的做法。微軟的Windows 容器相容性表格涵蓋了例外和隔離機制。請使用來自可信任註冊表的鏡像,並查看鏡像發布者的說明,以了解特定應用程式的要求。

Windows Server 2019、2022 和 2025 與其對應的 LTSC 容器映像標籤相符

6. 拉取並執行測試容器

對於 Windows Server 2022 主機,請拉取帶有符合標籤的 Microsoft Server Core 映像。使用這些主機版本時ltsc2025,請進行相應替換:ltsc2019

docker pull mcr.microsoft.com/windows/servercore:ltsc2022
PowerShell 指令可拉取 Microsoft 的 Windows Server Core LTSC 2022 容器映像

執行一次性命令以驗證鏡像是否可以啟動。此--rm選項會在命令退出時移除此測試容器:

docker run --rm mcr.microsoft.com/windows/servercore:ltsc2022 cmd /c echo Hello from a Windows container

你應該可以在 PowerShell 中看到列印的文字。映像會保留在本機快取中,而臨時容器則會被刪除。

PowerShell 執行一次性 Server Core 容器並顯示其回顯輸出

7. 啟動和管理應用程式容器

對於應用程式鏡像,請按照其發布者的運行說明進行操作,並將 `<image_name>` 替換YOUR_IMAGE為完整的鏡像名稱和標籤。此範例啟動一個名為 `<background_container_name>` 的後台容器webapp,並將主機連接埠 8080 對應到容器連接埠 80;僅當應用程式監聽連接埠 80 時才使用這些連接埠:

docker run -d --name webapp -p 8080:80 YOUR_IMAGE

然後根據需要檢查並清理容器:

docker ps
docker ps -a
docker logs webapp
docker stop webapp
docker rm webapp
用於列出容器、讀取 Web 應用程式日誌、停止 Web 應用程式和刪除 Web 應用程式的 PowerShell 命令

docker ps顯示正在運作的容器,同時docker ps -a也會列出已停止的容器。移除容器不會移除其鏡像。如果應用程式儲存的資料必須在容器替換後仍然存在,請按照映像文件配置 Docker 磁碟區或綁定掛載,並僅在需要外部存取時才允許對應的主機連接埠通過 Windows 防火牆。

常見的創業問題

  • 鏡像版本錯誤:請確認主機版本和鏡像 LTSC 標籤,然後查閱 Microsoft 的相容性清單。 Hyper-V 隔離功能可以解決某些受支援的版本組合問題,但這需要 Hyper-V 角色,並且在虛擬機器中需要嵌套虛擬化。
  • Docker 伺服器無法存取:檢查Get-Service docker、啟動或重新啟動該服務(如適用),並完成任何待處理的主機重新啟動。
  • 鏡像拉取失敗:請驗證登錄名稱和標籤、對 Microsoft 容器註冊表的出站存取權以及任何代理程式或防火牆規則。 Linux 鏡像需要在 Linux 主機或虛擬機器上執行 Linux 執行階段環境。

有關運行時選擇、映像服務和主機支援的詳細信息,請使用連結的 Microsoft 和 Mirantis 文檔,因為支援的版本和安裝指南可能會發生變化。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。