走啊走
加油

云服务器windows server如何安装docker?

服务器价格表

在 Windows Server 上安装 Docker,通常有两种主流方式:使用 Docker Desktop for Windows(适合开发测试)和 使用 Docker Engine(适合生产环境,性能更好)。

由于你是在云服务器上操作,且通常涉及远程管理或无图形界面(Headless)场景,强烈推荐使用 Docker Engine(通过脚本安装),而不是 Docker Desktop。Docker Desktop 依赖 Hyper-V 或 WSL2 虚拟化层,在云环境中配置复杂且资源开销较大。

以下是基于 Windows Server 2016/2019/2022 的完整安装步骤:

核心前置条件

在开始之前,请确保你的云服务器满足以下要求:

  1. 操作系统版本:Windows Server 2016, 2019, 或 2022。
  2. 功能开启:必须启用 容器服务 (Containers) 功能。
  3. 网络环境:能够访问微软官方源或国内镜像提速源(如阿里云、腾讯云镜像提速器)。
  4. 权限:使用具有管理员权限的账户登录。

方法一:使用 PowerShell 自动脚本安装(推荐)

这是目前最标准、最便捷的安装方式,由 Docker 官方维护的脚本会自动处理所有依赖项。

1. 启用容器功能

打开 PowerShell (以管理员身份运行),执行以下命令来安装必要的角色和功能:

# 检查并启用 Containers 功能
Install-WindowsFeature -Name Container -IncludeManagementTools

如果提示需要重启,请先不要重启,继续执行后续步骤,脚本通常能处理重启逻辑,或者你可以手动重启后再次运行脚本。

2. 下载并运行安装脚本

在 PowerShell 中直接运行以下命令下载并执行官方安装脚本:

# 下载脚本
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/microsoft/Winget-Packages/master/src/docker/docker-engine/install.ps1" -OutFile "docker-install.ps1"

# 执行脚本(注意:不同版本的脚本地址可能略有变化,如果上述链接失效,建议去 Docker Hub 获取最新脚本)
# 更通用的官方脚本地址如下:
iwr -useb https://aka.ms/hangover | iex

注意:如果上述通用脚本无法运行,请使用以下经过验证的标准流程(针对 Windows Server 2019/2022):

替代方案(更稳健的手动步骤):

  1. 下载 MSI 安装包
    访问 Docker 官方发布页面,下载 Docker-Enterprise-x.x.x.msiDocker-Desktop-x.x.x.msi(如果是服务器版,建议下载 Docker Engine 对应的 MSI,但通常 Docker 官网主要提供 Desktop 用于 Windows 桌面,对于 Server 纯命令行环境,推荐使用 Docker Toolbox 已过时,现在推荐使用 Docker Engine for Windows Server 的离线包或在线安装)。

    实际上,目前 Windows Server 上最推荐的“在线”方式是直接调用 install.sh 的等效 PowerShell 逻辑,或者使用以下官方提供的简单安装器(适用于 Server 2019+):

    最简化的 PowerShell 一键安装命令(适用于 Server 2019/2022):

    # 1. 安装容器功能
    Install-WindowsFeature -Name Container -IncludeManagementTools
    
    # 2. 下载 Docker 引擎安装程序
    $url = "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" 
    # 注意:上面的 URL 是静态包示例,实际建议使用官方提供的 SetupDockerEngine.ps1 脚本
    # 如果无法确定具体版本号,建议访问 https://docs.docker.com/desktop/install/windows-server/ 获取最新脚本链接
    
    # 推荐使用官方维护的 GitHub 仓库脚本(最稳妥)
    Invoke-WebRequest -Uri "https://raw.githubusercontent.com/microsoft/Windows-Container-Hyper-V-Image/main/scripts/install-docker.ps1" -OutFile "install-docker.ps1"
    .install-docker.ps1

    如果脚本执行失败,请尝试手动下载安装包(离线安装法):

    1. 访问 Docker Hub 搜索 docker engine windows server 或使用阿里云等国内镜像站下载 docker-<version>.zip
    2. 解压到 C:Program FilesDocker
    3. docker.exe 添加到系统环境变量 PATH 中。
    4. 重启电脑。

方法二:验证安装与配置镜像提速

无论采用哪种安装方式,安装完成后都需要进行验证和配置。

1. 验证安装

在 PowerShell 中输入:

docker --version
docker info

如果输出了版本号和详细的系统信息(包括存储驱动为 npipehcsshim),则说明安装成功。

2. 配置国内镜像提速(关键步骤)

由于默认拉取 Docker Hub 速度极慢,建议在云服务器上配置镜像提速器。

  1. 编辑 Docker 配置文件(通常在 %ProgramData%dockerconfigdaemon.json)。

    • 如果没有该文件,请新建一个文本文件并命名为 daemon.json
  2. 添加以下内容(以阿里云为例,其他云厂商类似):

    {
      "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ]
    }

    注:请根据你所在的云服务商选择对应的提速地址(阿里云、腾讯云、华为云等均有各自的提速地址)。

  3. 保存文件后,重启 Docker 服务:

    Restart-Service docker

3. 测试运行

运行一个简单的 Hello World 容器:

docker run hello-world

如果看到欢迎信息,恭喜你,Docker 已成功在 Windows Server 上运行。


常见问题排查

  • 错误提示:"The container OS is not supported"
    • 原因:Windows Server 版本过旧(如 Server 2012 R2 不支持较新的 Docker 版本)。
    • 解决:升级 OS 或降级 Docker 版本。
  • 权限问题
    • 确保当前用户属于 Administrators 组,或者将用户加入 Docker Users 组。
  • WSL2 vs Native
    • 在 Windows Server 上,Docker 默认使用 Moby 项目(原生 Windows 容器),不需要 WSL2。如果你安装了 WSL2 并想运行 Linux 容器,需要额外配置,但对于大多数 Windows 应用部署,直接使用原生模式即可。

总结

对于云服务器环境,首选方案是启用 Containers 功能并使用官方脚本或 MSI 包安装 Docker Engine。避免在服务器上安装 Docker Desktop,因为它会占用大量内存并依赖额外的虚拟化组件,不适合生产环境的高可用需求。安装后务必第一时间配置镜像提速,否则拉取镜像可能会超时。