走啊走
奋斗

云服务器Windows Server 2022安装docker?

服务器价格表

在 Windows Server 2022 上安装 Docker,主要有两种主流方式:Docker Desktop(适合开发/测试环境)和 Docker Engine(适合生产环境,通过容器引擎直接运行)。

由于 Windows Server 2022 默认使用的是 Hyper-V 技术,而 Docker Desktop 依赖 WSL 2 或 Hyper-V 后端,因此在服务器版上操作时需要注意系统版本和功能开启情况。

以下是针对这两种场景的详细操作步骤:


方案一:使用 Docker Desktop for Windows(推荐用于开发/测试)

这是最简便的方式,它集成了图形界面、WSL 2 集成和完整的工具链。

1. 前置条件检查

  • 操作系统要求:确保已安装 Windows Server 2022 的最新版(建议安装所有最新更新)。
  • 虚拟化支持:BIOS/UEFI 中必须开启虚拟化技术(Intel VT-x / AMD-V),且已在 Windows 中启用“虚拟机平台”功能。
    • 以管理员身份运行 PowerShell,执行以下命令开启必要功能:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
      Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
      Enable-WindowsOptionalFeature -Online -FeatureName Containers
    • 重启服务器

2. 下载与安装

  1. 访问 Docker 官网下载页面:https://www.docker.com/products/docker-desktop/
  2. 选择 Windows (x64) 版本的 .msi 安装包进行下载。
    • 注意:如果下载器提示需要 WSL 2,请先确保 WSL 2 已安装(见下文步骤3)。
  3. 运行安装程序,按照向导完成安装。

3. 配置 WSL 2 后端(关键步骤)

Docker Desktop 在 Windows Server 上通常强制使用 WSL 2 作为后端。

  1. 打开 PowerShell(管理员),设置默认版本为 WSL 2:
    wsl --set-default-version 2
  2. 首次启动 Docker Desktop 时,它会自动检测并引导你安装 Linux 发行版(如 Ubuntu)。
  3. 启动 Docker Desktop 应用程序,等待右下角托盘图标变为绿色(表示正在初始化)。
  4. 打开命令行输入 docker --version,若显示版本号则安装成功。

方案二:使用 Docker Engine(推荐用于生产环境)

如果你不需要图形界面,或者希望更轻量级地运行容器,可以直接安装 Docker Engine。这种方式在服务器上性能更好,资源占用更少。

1. 准备脚本

微软官方提供了自动化的安装脚本,可以自动处理依赖项(如 .NET Runtime, WinRM 等)。

  1. 管理员身份打开 PowerShell。
  2. 运行以下命令下载并执行安装脚本(从微软官方源获取):
    $script = @"
    $ErrorActionPreference = 'Stop'
    Set-ExecutionPolicy Bypass -Scope Process -Force
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
    iex ((New-Object System.Net.WebClient).DownloadString('https://aka.ms/install-docker.ps1'))
    "@
    Invoke-Expression $script

    注:如果上述长脚本执行失败,也可以手动分步执行,先确保安装了 .NET 6.0 运行时和 WinRM 服务。

2. 验证安装

安装完成后,验证 Docker 是否正常运行:

docker run hello-world

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

3. 配置镜像提速(国内用户必做)

由于网络原因,直接从 Docker Hub 拉取镜像可能非常慢。建议配置国内镜像提速器。

  1. 创建或编辑配置文件 C:ProgramDatadockerconfigdaemon.json
    • 如果文件不存在,请新建一个。
  2. 添加以下内容(替换为你自己的提速器地址,例如阿里云、腾讯云或 DaoCloud):
    {
      "registry-mirrors": [
        "https://<你的专属提速地址>.mirror.aliyuncs.com"
      ]
    }
  3. 重启 Docker 服务使配置生效:
    Restart-Service docker

常见问题排查

问题现象 可能原因 解决方案
无法启动容器 Hyper-V 未开启 确认已执行 Enable-WindowsOptionalFeature 并重启了服务器。
WSL 2 报错 内核未更新 运行 wsl --update 更新 WSL 内核。
权限拒绝 非管理员运行 务必以“管理员身份”运行 PowerShell 或 CMD。
网络不通 防火墙拦截 检查 Windows 防火墙规则,确保允许 Docker 相关端口。
中文乱码 区域设置问题 尝试在容器内设置环境变量 LANG=zh_CN.UTF-8

总结建议

  • 如果是个人学习、本地开发或临时测试:请直接使用 Docker Desktop,虽然资源占用稍高,但管理方便,支持 GUI。
  • 如果是正式的生产环境服务器:建议使用 Docker Engine(方案二),避免图形界面带来的额外开销和安全风险,同时配合 CI/CD 流程管理容器。

安装完成后,你可以尝试运行一个简单的 Nginx 容器来验证:

docker run -d -p 80:80 --name my-web nginx

然后在浏览器访问 http://localhost 即可看到 Nginx 欢迎页。