在 Windows Server 上安装 Docker,目前官方推荐使用 Docker Desktop for Windows(适用于包含图形界面的版本)或 Docker Engine(基于 WSL 2)。
由于云服务器通常默认没有图形界面(Headless),或者为了保持轻量级和稳定性,最推荐的方式是使用基于 WSL 2 (Windows Subsystem for Linux) 的 Docker Engine。这种方式性能更好,且不需要依赖完整的桌面环境。
以下是两种主流方案的详细步骤:
方案一:使用 WSL 2 + Docker Engine(推荐,适合无图形界面服务器)
这是目前生产环境和云服务器的最佳实践。它利用 Linux 内核运行容器,性能接近原生 Linux。
1. 启用 WSL 2 和虚拟化功能
打开 PowerShell(管理员模式),依次执行以下命令:
# 启用必要的 Windows 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启电脑(必须执行,否则无法继续)
Restart-Computer
注意:如果提示需要重启,请手动重启服务器。
2. 安装 WSL 发行版(Ubuntu)
重启后,再次以管理员身份打开 PowerShell,下载并安装 Ubuntu(或其他你喜欢的发行版):
# 安装默认的 Ubuntu (如果没有预装)
wsl --install -d Ubuntu
# 如果没有预装,也可以去 Microsoft Store 下载安装 .appx 包,然后双击安装
安装完成后,系统会提示你设置用户名和密码。请务必记住这个密码,后续配置需要用到。
3. 将 WSL 2 设为默认版本
wsl --set-default-version 2
4. 启动并登录 WSL
输入 wsl 进入 Ubuntu 终端。
5. 在 WSL 中安装 Docker Engine
在 WSL 终端内执行以下脚本(自动安装最新版):
# 更新软件源
sudo apt-get update
# 安装依赖项
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方的 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine, CLI, Containerd
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 验证安装
docker version
6. (可选)将当前用户加入 docker 组
为了避免每次运行 docker 命令都需要 sudo:
sudo usermod -aG docker $USER
# 注销并重新登录 wsl 会话生效
exit
7. 从 Windows 调用 Docker
现在你可以在 Windows 的 PowerShell 或 CMD 中直接运行 docker 命令,它会自动转发到 WSL 2 中的 Docker 引擎:
docker run hello-world
方案二:使用 Docker Desktop for Windows(适合有图形界面的开发机)
如果你的云服务器安装了远程桌面(RDP)并且你有图形界面操作权限,可以直接安装 Docker Desktop。
- 下载:访问 Docker 官网 下载 Windows 版本安装包。
- 检查兼容性:确保服务器已开启 Hyper-V 和 WSL 2 支持(参考方案一的步骤 1)。
- 安装:运行
.msi安装包,按照向导完成安装。 - 启动:安装完成后启动 Docker Desktop。
- 首次启动可能需要几分钟进行初始化。
- 确保右下角托盘图标显示为绿色(Running)。
- 验证:打开 PowerShell 输入
docker run hello-world。
注意:Docker Desktop 是免费用于个人学习/开发的,但在商业生产环境中,微软要求付费订阅(除非符合特定豁免条件)。对于纯后端服务的云服务器,方案一(Docker Engine)更经济且资源占用更低。
常见问题与优化建议
-
网络问题:
- 国内云服务器可能无法直接拉取 Docker Hub 镜像。建议在 WSL 的
/etc/docker/daemon.json中添加国内镜像提速地址(如阿里云、腾讯云、DaoCloud 等提供的提速器)。 - 示例配置 (
/etc/docker/daemon.json):{ "registry-mirrors": ["https://your-mirror-id.m.daocloud.io"] } - 修改后需重启服务:
sudo systemctl restart docker
- 国内云服务器可能无法直接拉取 Docker Hub 镜像。建议在 WSL 的
-
端口映射:
- 云服务器安全组(Security Group)必须放行对应的端口(如 80, 443, 8080 等),否则即使容器启动了也无法从外部访问。
-
持久化数据:
- 建议将数据卷挂载到 WSL 的文件系统之外,或者使用 Docker Volume 管理,防止删除容器时数据丢失。
总结:对于大多数云服务器场景,方案一(WSL 2 + Docker Engine) 是首选,因为它轻量、高性能且无需图形界面即可运行。
CLOUD云枢