在 Windows Server 2022 标准版上安装 Docker,需要使用 Docker Desktop for Windows 或更推荐的方式是使用 Microsoft 提供的容器功能和 Moby(Docker 引擎)开源版本。由于 Docker Desktop 在 Windows Server 上的支持有限(尤其是商业用途需许可证),通常建议通过 Windows 容器功能 + PowerShell 命令来安装和运行 Docker。
以下是基于 原生 Windows 容器支持 + 安装 Docker Engine(Moby) 的标准方法:
✅ 步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行以下命令:
# 启用容器功能
Install-WindowsFeature -Name Containers
# 重启服务器(必须)
Restart-Computer -Force
✅ 步骤 2:安装 Microsoft 更新服务(可选但推荐)
确保系统已更新到最新补丁,避免兼容性问题:
Install-Module -Name PowerShellGet -Force
Update-Module -Name PowerShellGet
✅ 步骤 3:安装容器运行时(Docker Engine / Moby)
微软推荐使用其维护的 Docker 引擎分支(即 dockerd from Moby project)。
方法一:使用脚本自动安装(推荐)
在管理员 PowerShell 中运行:
# 下载并运行官方安装脚本
Invoke-WebRequest "https://github.com/microsoft/Windows-Containers/raw/main/helpers/Install-ContainerHost.ps1" -UseBasicParsing -OutFile "Install-ContainerHost.ps1"
.Install-ContainerHost.ps1 -Cleanup
这个脚本会自动安装最新稳定版的 Docker Engine(基于 Moby)。
方法二:手动下载安装
-
访问 GitHub 上的发布页:
https://github.com/moby/moby/releases或使用微软托管的版本:
https://github.com/kloudleaks/windows-docker-daemon -
下载适用于 Windows 的
dockerd.exe和相关组件(如docker.exe)。 -
解压到
C:Program Filesdocker -
添加路径到系统环境变量:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:Program Filesdocker", [System.EnvironmentVariableTarget]::Machine)
✅ 步骤 4:注册 Docker 为 Windows 服务
继续在 PowerShell(管理员)中执行:
cd "C:Program Filesdocker"
.dockerd --register-service
这将把 Docker 守护进程注册为系统服务。
✅ 步骤 5:启动 Docker 服务
Start-Service docker
验证是否运行:
Get-Service docker
输出应为 Running 状态。
✅ 步骤 6:测试 Docker 是否正常工作
docker version
docker run hello-world:nanoserver
注意:Windows 容器镜像与 Linux 不同,需使用
nanoserver或mcr.microsoft.com/windows/servercore等镜像。
示例拉取一个 Server Core 镜像:
docker pull mcr.microsoft.com/windows/servercore:ltsc2022
⚠️ 注意事项
-
Windows 容器 vs Linux 容器
Windows Server 2022 默认仅支持 Windows 容器。无法原生运行 Linux 容器(除非开启 Hyper-V 并配置 LCOW,但复杂且性能差)。 -
Docker Desktop 不推荐用于生产环境
Docker Desktop for Windows Server 需要付费订阅(商业用途),不适合部署在服务器上。建议使用上面的原生方式。 -
系统要求
- 必须是 64 位系统
- 至少 4GB 内存
- 启用 Hyper-V(如果需要 LCOW 或增强隔离)
- 文件系统为 NTFS
-
防火墙或X_X问题
如果在企业网络中,请确保能访问 GitHub、Microsoft 容器镜像仓库等。
✅ 可选:启用远程管理(Docker TCP 端口)
编辑配置文件或修改服务启动参数以允许远程连接(谨慎使用):
# 修改服务启动参数(示例)
.dockerd --register-service -H npipe:// -H tcp://0.0.0.0:2375
然后重启服务:
Restart-Service docker
? 参考文档
-
Microsoft 官方指南:
https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=windows-server -
Moby for Windows:
https://github.com/moby/moby/tree/master/docs/rootless.md#windows
如果你希望图形化管理,可以考虑后续安装 Portainer 来可视化管理容器:
docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart always -v \.pipedocker_engine:\.pipedocker_engine -v portainer_data:C:data portainer/portainer-ee:latest
访问 http://<your-server-ip>:9000 初始化即可。
如有具体需求(比如跑某个应用、混合环境、Kubernetes 集成),欢迎继续提问!
CDNK博客