在 Windows Server 上安装 Docker 主要有两种方式:Docker Desktop(适合开发/测试环境)和 Docker Engine for Windows(适合生产环境,但配置较复杂)。
对于大多数云服务器场景,推荐使用 Docker Desktop,因为它自动化程度高、维护简单。如果你的服务器是生产环境且对资源极其敏感,也可以考虑使用 Docker Engine,但需要手动处理 WSL2 或 Hyper-V 依赖。
以下是基于 Windows Server 2016/2019/2022 的标准安装步骤:
前置条件检查
在开始之前,请确保你的云服务器满足以下要求:
- 操作系统版本:必须是 Windows Server 2016 或更高版本。
- 虚拟化支持:
- 如果是 AWS、Azure、阿里云等云厂商的实例,需要在控制台开启“嵌套虚拟化”(Nested Virtualization)功能。
- 本地物理机需确认 BIOS 中已开启 VT-x/AMD-V。
- 磁盘空间:预留至少 20GB 以上的可用空间。
- 网络连接:能够访问微软官方源或国内镜像提速源。
方法一:使用 Docker Desktop(推荐,最简单)
这是最通用的方式,适用于开发和测试环境。它会自动配置 WSL2 后端。
1. 下载安装包
访问 Docker 官网下载对应版本的安装包:
- 下载地址:https://desktop.docker.com/win/main/amd64
- 文件名为
DockerDesktop.exe。
注意:如果是在中国大陆,建议寻找国内镜像站或X_X,否则下载速度可能极慢。
2. 安装并配置
- 双击运行
DockerDesktop.exe。 - 按照向导点击 "Next",接受协议。
- 关键步骤:在安装选项中,务必勾选 "Use WSL 2 instead of Hyper-V"(使用 WSL 2 而不是 Hyper-V)。
- 原因:WSL 2 在性能和兼容性上通常优于 Hyper-V,且更易于管理容器网络。
- 点击 "Install" 完成安装。
- 安装完成后,系统可能会提示重启电脑,建议立即重启。
3. 启动与验证
- 重启后,在开始菜单找到 Docker Desktop 并启动。
- 等待右下角托盘图标变为绿色(表示 Docker 引擎已就绪)。
- 打开 PowerShell 或 CMD,输入以下命令验证:
docker --version docker run hello-world如果看到
Hello from Docker!字样,说明安装成功。
方法二:使用 Docker Engine + WSL2(生产环境备选)
如果你不想安装完整的 Docker Desktop GUI,或者服务器是纯命令行环境,可以仅安装 Docker Engine。但这需要手动配置 WSL2 发行版。
1. 启用 WSL2 和 Linux 内核更新
以管理员身份运行 PowerShell,执行以下命令:
# 启用可选组件
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置默认版本为 WSL2
wsl --set-default-version 2
# 重启电脑
Restart-Computer
2. 安装 Ubuntu 发行版
从 Microsoft Store 安装一个 Linux 发行版(如 Ubuntu 20.04 或 22.04),或者通过命令行安装:
wsl --install -d Ubuntu-22.04
安装完成后,首次运行会提示你设置用户名和密码。
3. 在 WSL 中安装 Docker Engine
进入刚安装的 Ubuntu 终端(在 Windows 中搜索 Ubuntu 并打开):
# 更新软件包索引
sudo apt-get update
# 安装依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置稳定版仓库
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 将当前用户加入 docker 组(避免每次都要用 sudo)
sudo usermod -aG docker $USER
注:加入用户组后需要重新登录终端才能生效。
4. 验证
在 WSL 终端中运行:
docker run hello-world
常见问题与优化建议
-
内存不足问题:
Docker Desktop 默认可能占用较多内存。你可以在 Docker Desktop 设置(齿轮图标 -> Resources)中限制 CPU 和内存使用量,防止挤占业务进程资源。 -
网络问题:
云服务器上的 Docker 拉取镜像时可能会超时。建议在 Docker Desktop 设置中配置 Registry Mirrors(镜像提速器),例如使用阿里云、腾讯云或中科大的镜像提速地址。- 路径:Docker Desktop Settings -> Docker Engine,修改
daemon.json添加registry-mirrors字段。
- 路径:Docker Desktop Settings -> Docker Engine,修改
-
权限问题:
如果在非管理员账户下运行 Docker 报错,请确保当前用户已加入Docker Users组,或者使用管理员身份运行 PowerShell。 -
Hyper-V vs WSL2:
虽然 Docker Desktop 默认推荐 WSL2,但在某些老旧的云服务商或特定网络环境下,Hyper-V 模式可能更稳定。如果遇到网络不通的问题,可以尝试在设置中切换后端模式。
通过以上步骤,你应该能顺利在 Windows Server 云环境中部署好 Docker。如果是生产环境,建议定期关注 Docker 官方文档的安全更新。
云服务器