windows server 2022云服务器部署docker?

在 Windows Server 2022 上部署 Docker 是完全可行的,但需要注意一个核心概念:Windows Server 上的 Docker 默认运行的是 Windows 容器(基于 Windows 内核),而不是 Linux 容器。如果你需要运行标准的 Linux 镜像(如大多数开源项目、Node.js、Python 等),通常有两种方案:

  1. 使用 WSL 2 (推荐):利用 Windows Subsystem for Linux 2,这是目前最稳定、性能最好的方式,能完美运行 Linux 容器。
  2. 直接使用 Docker Desktop for Windows (或 Server 版):通过 Hyper-V 或 WSL 2 后端自动管理 Linux 容器。

以下是针对 Windows Server 2022 的两种主流部署方案。


方案一:使用 WSL 2 + Docker Engine (推荐用于生产环境)

这是微软官方推荐的现代架构。WSL 2 提供了真正的 Linux 内核,Docker 可以像原生 Linux 服务器一样运行 Linux 容器,性能损耗极低。

1. 启用 WSL 2

打开 PowerShell (管理员模式),依次执行以下命令:

# 启用必要的功能并重启
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 设置默认版本为 WSL 2
wsl --set-default-version 2

注意:执行完上述命令后,建议重启服务器。

2. 安装 Linux 发行版

在 Microsoft Store 中搜索并安装 Ubuntu (或其他你喜欢的发行版)。如果没有商店访问权限,可以使用命令行下载:

wsl --install -d Ubuntu

安装完成后首次启动会提示设置用户名和密码。

3. 安装 Docker Engine (Linux 版)

进入刚安装的 Ubuntu 子系统 (wsl),然后按照标准的 Linux Docker 安装步骤进行:

# 更新包索引
sudo apt-get update

# 安装依赖工具
sudo apt-get install -y 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 -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. 配置非 root 用户运行 Docker (可选但推荐)

为了避免每次都要加 sudo,将当前用户加入 docker 组:

sudo usermod -aG docker $USER
# 退出并重新登录 wsl 使组生效
exit

5. 验证安装

docker run hello-world

如果看到欢迎信息,说明 Linux 容器环境已就绪。


方案二:使用 Docker Desktop (适合开发/测试环境)

如果你更倾向于图形化界面或不想手动配置 Linux 子系统,可以直接安装 Docker Desktop。它会自动处理 WSL 2 后端和容器的隔离。

注意:Docker Desktop 的免费版仅限个人学习和开发,商业生产环境可能需要付费订阅。对于纯服务器环境,通常建议使用方案一(Docker Engine)以节省资源。

  1. 开启 Hyper-V 或 WSL 2 支持:确保系统已开启虚拟化功能。
  2. 下载并安装:前往 Docker 官网下载适用于 Windows 的安装包。
  3. 安装过程
    • 选择 "Use WSL 2 instead of Hyper-V" (推荐使用 WSL 2 以获得更好性能)。
    • 安装完成后启动 Docker Desktop。
  4. 切换容器类型
    • 在 Docker Desktop 界面右上角,点击鲸鱼图标旁边的菜单,选择 "Switch to Linux containers"
    • 等待服务重启,即可拉取和运行 Linux 镜像。

关键区别与注意事项

特性 方案一 (WSL 2 + Docker Engine) 方案二 (Docker Desktop)
适用场景 生产环境、高性能需求、无 GUI 服务器 本地开发、测试、学习
资源占用 低 (仅后台进程) 较高 (包含 GUI 组件和管理面板)
成本 免费 商业授权可能受限
网络配置 需手动配置端口映射 自动管理,较简单
文件系统 挂载到 WSL 文件系统,性能极佳 文件同步可能有轻微开销

常见问题排查

  1. 无法拉取镜像

    • 检查服务器是否能访问网络(Docker Hub)。
    • 如果是内网环境,需要配置国内镜像提速器(如阿里云、腾讯云镜像提速地址),修改 /etc/docker/daemon.json
  2. 内存不足

    • Windows Server 2022 本身占用较多内存。请确保分配给 WSL 2 足够的内存限制。可以在 %USERPROFILE%.wslconfig 文件中配置:
      [wsl2]
      memory=8GB
      swap=4GB
  3. Windows 容器 vs Linux 容器

    • 如果你直接安装 Docker 而不启用 WSL 2 后端,默认是 Windows 容器。此时只能运行 mcr.microsoft.com/windows/servercore 等镜像。
    • 务必确认你的业务镜像是 Linux 构建的,如果是,必须使用上述方案切换到 Linux 容器模式。

总结建议

  • 如果是生产环境的云服务器:强烈建议采用 方案一 (WSL 2 + Docker Engine)。它轻量、稳定、完全免费且符合云原生最佳实践。
  • 如果是本地开发机:使用 Docker Desktop 会更便捷。

部署完成后,你可以像操作普通 Linux 服务器一样使用 docker pull, docker run, docker-compose up 等命令了。

未经允许不得转载:CLOUD云枢 » windows server 2022云服务器部署docker?