走啊走
加油

阿里云Windows server系统如何部署docker?

服务器价格表

在阿里云 Windows Server 上部署 Docker,官方并不直接提供原生的 Windows Docker 安装程序(如 Linux 上的 aptyum),因为 Windows 容器需要特定的内核支持。

目前最主流、最稳定的方案是:先安装 WSL 2 (Windows Subsystem for Linux),然后在 WSL 2 中安装 Docker Engine。这种方式性能接近原生,且能完美利用阿里云 ECS 的 Linux 生态。

以下是详细的操作步骤:

前置准备

  1. 确认系统版本:确保你的阿里云 Windows Server 实例已更新至较新版本(推荐 Windows Server 2019 或 2022)。
  2. 开启虚拟化:登录阿里云控制台,进入该 ECS 实例详情,检查是否开启了“嵌套虚拟化”(部分镜像默认开启,若未开启需在实例设置中勾选)。
  3. 网络环境:确保服务器可以访问网络(用于下载镜像和软件)。

方案一:推荐方案(通过 WSL 2 + Docker Desktop)

这是目前 Windows 环境下运行 Docker 的最佳实践,兼容性好,支持 Linux 和 Windows 容器。

步骤 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 2 内核更新

重启后,再次以管理员身份运行 PowerShell,下载并安装最新的 WSL 2 内核:

wsl --update

步骤 3:安装 Linux 发行版

在 PowerShell 中安装 Ubuntu(或其他你喜欢的发行版,如 Ubuntu 22.04):

wsl --install -d Ubuntu

安装完成后,系统会提示你创建一个新用户和密码。

步骤 4:将默认版本设置为 WSL 2

wsl --set-default-version 2

步骤 5:安装 Docker Desktop

  1. 在 Windows 浏览器中访问 Docker Hub 下载 Docker Desktop for Windows 安装包。
  2. 运行安装程序。
  3. 关键配置:在安装向导中,务必勾选 "Use the WSL 2 based engine"(使用基于 WSL 2 的引擎)。
  4. 完成安装并启动 Docker Desktop。
    • 首次启动时,Docker Desktop 会自动在后台初始化 WSL 2 环境并安装 Docker Engine。
    • 等待右下角托盘图标变为绿色鲸鱼标志,表示启动成功。

步骤 6:验证安装

在 PowerShell 中输入:

docker --version
docker run hello-world

如果看到 "Hello from Docker!" 字样,说明部署成功。


方案二:备选方案(仅适用于 Windows 容器场景)

如果你必须运行纯 Windows 容器(例如依赖 .NET Framework 旧版本的应用),且无法使用 WSL 2,则需要安装 Moby Engine(微软开源的 Docker 引擎组件)。

注意:此方案配置复杂,不支持 Linux 容器,且对 Windows Server 版本有严格要求。通常不建议作为首选。

  1. 下载 Moby Engine 安装包(需从微软 GitHub 仓库获取对应版本的 MSI 文件)。
  2. 安装时选择 Install as a service
  3. 配置 daemon.json 指定容器类型(Windows 或 Linux)。
  4. 由于缺乏图形化界面管理,通常需要配合命令行工具操作,维护成本较高。

阿里云环境下的特别优化建议

在阿里云 ECS 上使用 Docker,建议关注以下几点以提升性能和安全性:

  1. 安全组配置

    • 登录阿里云控制台 -> 安全组。
    • 放行 Docker 常用端口(如 2375, 2376 仅限内网,业务端口如 80, 443, 3306 等)。
    • 切勿将 Docker API 端口 (2375) 对公网开放,否则极易被劫持X_X。
  2. 磁盘 I/O 优化

    • 阿里云云盘(ESSD/SSD)性能较好,但挂载数据卷时建议使用独立的云盘挂载到 /var/lib/docker,避免系统盘写满。
    • 可以在 D 盘或其他数据盘创建目录,并在 Docker Desktop 设置中修改 Data root 路径。
  3. 镜像提速

    • 由于国内网络原因,拉取 Docker Hub 镜像可能很慢。
    • 在 Docker Desktop 设置中,找到 Registry Mirrors,填入阿里云提供的镜像提速器地址(需先在阿里云控制台申请个人专属的提速器地址)。
    • 配置示例(JSON):
      {
      "registry-mirrors": ["https://<你的唯一ID>.mirror.aliyuncs.com"]
      }

总结

对于绝大多数用户,方案一(WSL 2 + Docker Desktop) 是在阿里云 Windows Server 上部署 Docker 的最优解。它既保留了 Windows 的便利性,又拥有了 Linux 容器的完整生态和性能。安装完成后,你可以像操作 Linux 一样在 Windows PowerShell 中使用 docker rundocker-compose 等命令。