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

在 Windows Server 上安装 Docker,通常推荐使用 Docker Desktop(适合开发测试)或 Docker Engine (Standalone)(适合生产环境)。由于 Windows Server 默认不支持 WSL2 后端(除非手动配置),且为了保持系统轻量级,生产环境推荐直接安装 Docker Engine

以下是针对 Windows Server 的详细安装步骤:

核心前置条件

  1. 启用 Hyper-V:Windows Server 的 Docker 依赖于 Hyper-V 技术。
  2. 开启容器功能:需要安装“容器”角色。
  3. 版本要求:建议 Windows Server 2016 及以上版本(2019/2022 体验最佳)。

第一步:启用必要的服务器角色

打开 PowerShell (管理员)服务器管理器,执行以下操作。

方法 A:使用 PowerShell 一键安装(推荐)

以管理员身份运行 PowerShell,输入以下命令:

# 安装 Hyper-V 和容器支持
Install-WindowsFeature -Name Hyper-V, Containers -IncludeManagementTools -Restart

注意:执行后系统可能会提示重启,建议稍后统一重启。

方法 B:使用图形界面(GUI)

  1. 打开 服务器管理器 -> 管理 -> 添加角色和功能
  2. 点击“下一步”,选择 “基于角色或基于功能的安装”
  3. 勾选目标服务器,继续直到“服务器角色”页面。
  4. 勾选 Hyper-V容器 (Containers)
  5. 根据向导完成安装并重启服务器。

第二步:下载并安装 Docker Engine

Windows Server 不直接提供 Docker Desktop 的安装包(因为它依赖 WSL2,而在 Server 版上配置复杂),因此我们下载官方的 MSI 安装包。

  1. 访问下载地址
    前往 Docker 官方发布页获取最新稳定版 MSI:
    https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
    注意:虽然名字叫 Desktop,但如果你选择 "Run as a Windows Service" 模式,它可以在后台作为服务运行。不过更纯粹的生产方式是下载 docker-engine 的离线包。

    更推荐的官方生产方式
    访问 Docker Hub 的 GitHub Releases 页面,搜索 docker-ce 的 Windows 版本,或者直接使用以下脚本自动下载最新版(需联网):

    # 从微软官方仓库下载 Docker Engine for Windows
    Invoke-WebRequest -Uri "https://download.docker.com/win/static/edge/x86_64/docker.zip" -OutFile "C:docker.zip"
    Expand-Archive -Path "C:docker.zip" -DestinationPath "C:docker" -Force

    (注:上述脚本是静态版示例,对于大多数用户,直接下载 Docker Desktop for Windows 并在设置中开启 "Use the Windows Host Networking" 或 "WSL2 backend" 是最简单的,尽管在 Server 上 WSL2 配置较繁琐。)

    最稳妥的官方指引(MSI 安装)
    如果无法通过脚本,请手动访问:Docker Engine for Windows 下方的链接,寻找 Docker Desktop Installer,但在安装时不要勾选 WSL2 集成(如果选项存在),或者直接使用 Docker Toolbox(已弃用,不推荐)。

    目前 Windows Server 的最佳实践是使用 Docker Desktop 的 "Server Mode" 或直接使用官方提供的 dockerd 二进制文件。

    推荐方案:使用官方提供的安装脚本(自动化)
    在 PowerShell (管理员) 中运行:

    # 检查并安装 Docker
    if (!(Get-Command docker -ErrorAction SilentlyContinue)) {
       Write-Host "正在下载 Docker Engine..."
       $url = "https://download.docker.com/win/static/edge/x86_64/docker.zip"
       Invoke-WebRequest -Uri $url -OutFile "$env:TEMPdocker.zip"
       Expand-Archive "$env:TEMPdocker.zip" -DestinationPath "$env:TEMPdocker" -Force
    
       # 将 docker.exe 添加到环境变量
       $dockerPath = "$env:TEMPdocker"
       $env:Path += ";$dockerPath"
    
       Write-Host "Docker 已解压到临时目录,请手动将 docker.exe 复制到 C:Program FilesDocker 并添加到 PATH,然后重启。"
    }

    修正:对于 Windows Server 生产环境,最标准的方法是下载 Docker Desktop 并配置为后台服务,或者使用 dockerd 启动器。

    让我们采用最通用且无需复杂配置的方法:下载 Docker Desktop 并配置为仅作为守护进程运行

    1. 下载 Docker Desktop Installer.exe
    2. 双击运行。
    3. 在安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V" (如果服务器支持 WSL2) 或者 "Use Hyper-V"
      如果在纯 Server 环境且不想折腾 WSL2,请选择 Hyper-V 模式。
    4. 安装完成后,打开 Docker Desktop,点击右下角设置图标 -> General,勾选 "Start Docker Desktop when you log in" (可选)。
    5. 关键步骤:为了让它在后台作为服务运行而不弹 GUI,你需要修改注册表或使用命令行参数启动,或者直接在服务器上运行 docker run hello-world 来验证。

    替代方案(更轻量,无 GUI):
    如果你不需要 Docker Desktop 的图形界面,可以直接下载 Docker CE for Windows 的二进制包(非 MSI,而是 zip 包),解压后配置为 Windows 服务。

    1. 下载 docker.zip (从 Docker 官网 Static builds)。
    2. 解压到 C:Program FilesDocker
    3. 创建服务配置文件 dockerd-service.json
      {
      "Image": "mcr.microsoft.com/docker/docker-proxy",
      "Args": ["--host=tcp://127.0.0.1:2375"]
      }

      (注:此部分较为复杂,对于初学者,直接使用 Docker Desktop 并忽略其 UI 弹窗是最快的路径。)

    总结:最简单的上手流程

    1. 确保已安装 Hyper-VContainers 角色。
    2. 下载 Docker Desktop for Windows (适用于 Windows Server 的版本)。
    3. 运行安装程序,选择 Hyper-V 模式。
    4. 安装完成后,打开 PowerShell 输入 docker --version
    5. 输入 docker run hello-world 验证是否成功。

第三步:验证安装

安装完成后,打开一个新的 PowerShell 窗口(确保没有旧的缓存),输入:

# 检查版本
docker --version

# 拉取镜像并运行测试容器
docker run hello-world

如果看到类似 "Hello from Docker!" 的输出,说明安装成功。

常见问题与优化

  1. 权限问题
    如果遇到 Permission denied,请确保当前用户是本地管理员组,或者将当前用户添加到 docker-users 组(如果有)。

  2. 网络问题
    云服务器通常有安全组限制。Docker 容器默认会创建虚拟网卡,确保云服务商的安全组规则允许出站流量(特别是访问网络拉取镜像时)。

  3. 性能优化
    在 Windows Server 上,Docker 的性能略低于 Linux。如果是高负载生产环境,建议考虑迁移到 Linux 发行版的 Docker(如 Ubuntu/CentOS/Alpine),因为 Windows 容器的性能开销较大。

  4. 关于 WSL2
    在 Windows Server 2019/2022 上,WSL2 的支持已经比较成熟。如果你希望获得接近原生 Linux 的性能,可以安装 WSL2 子系统,然后在其中运行 Docker Desktop 的 WSL2 后端模式。但这需要额外的配置步骤(启用 WSL2 功能、安装内核更新等)。

最终结论

在 Windows Server 上安装 Docker 的核心在于:先启用 Hyper-V 和容器角色,再安装 Docker Desktop 或 Docker Engine。对于快速验证和开发,Docker Desktop 是最便捷的选择;对于追求极致性能和纯净环境的服务器,建议后续迁移至 Linux 环境运行 Docker。

未经允许不得转载:CLOUD技术博 » 云服务器windows server如何安装docker?