windows server 2022 docker安装?

在 Windows Server 2022 上安装 Docker,通常有两种主要方式:使用 Docker Desktop(适合开发测试环境)或安装 Docker Engine for Windows(适合生产环境)。

由于 Windows Server 2022 默认支持两种容器模式(Windows 容器和 Linux 容器),但两者的配置步骤略有不同。以下是针对这两种场景的详细安装指南。


⚠️ 前置条件检查

在安装之前,请确保您的服务器满足以下要求:

  1. 操作系统版本:必须是 Windows Server 2022 Standard 或 Datacenter 版。
  2. 虚拟化支持:BIOS/UEFI 中必须开启虚拟化技术(Intel VT-x / AMD-V)。
  3. Hyper-V:Windows Server 2022 已内置 Hyper-V 功能,但建议先确认是否启用。
  4. 网络连接:需要能够访问 Microsoft 仓库或 Docker Hub。

方法一:安装 Docker Desktop (推荐用于开发/测试)

这是最简单的安装方式,适用于大多数非核心生产场景。它会自动处理 WSL2 后端或 Hyper-V 后端的配置。

1. 下载安装包

访问 Docker 官网下载页面,选择 Windows Server 2022 对应的版本:

  • 前往 Docker Hub 搜索 docker-desktop 并找到 "Stable" 标签下的 amd64 架构安装包(.msi 文件)。
  • 注意:Docker Desktop 对服务器版的授权策略较严格,主要用于开发和测试。

2. 运行安装向导

  1. 双击下载的 .msi 文件。
  2. 按照向导提示点击 "Next"。
  3. 在组件选择界面,确保勾选 WSL 2 Backend(如果系统支持)或 Hyper-V Backend
    • 对于 Windows Server 2022,推荐使用 Hyper-V 模式以获得更好的兼容性,或者在已安装 WSL2 的环境中使用 WSL2 后端。
  4. 完成安装并重启服务器(根据提示)。

3. 验证安装

打开 PowerShell(管理员模式),输入:

docker --version
docker run hello-world

如果看到 "Hello from Docker!" 消息,则安装成功。


方法二:安装 Docker Engine (推荐用于生产环境)

如果您需要在生产环境中部署且不想使用 Docker Desktop 的额外开销,可以直接安装 Docker Engine。这需要手动配置 Hyper-V 或 WSL2。

步骤 1:启用 Hyper-V 功能

Docker Engine on Windows 依赖 Hyper-V。请在 PowerShell (管理员) 中运行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

安装完成后,根据提示重启服务器。

步骤 2:下载 Docker MSI 安装包

由于 Docker 不再直接提供旧版的 standalone MSI 下载链接,我们需要通过 PowerShell 脚本自动下载并安装。

在 PowerShell (管理员) 中执行以下命令(这将自动下载最新版本的 Docker Engine):

# 设置变量以获取最新版本
$dockerVersion = (Invoke-WebRequest -Uri "https://api.github.com/repos/microsoft/Windows-Containers/releases/latest" | ConvertFrom-Json).tag_name
$downloadUrl = "https://download.docker.com/win/static/stable/x86_64/docker-$($dockerVersion)-amd64.zip"

# 更推荐的方式:使用官方提供的安装脚本
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/microsoft/Windows-Containers/main/scripts/install-docker.ps1" -OutFile "install-docker.ps1"
.install-docker.ps1

如果上述脚本不可用,也可以手动下载 docker-engine 的 MSI 包(通常在 Docker 官方 GitHub Releases 页面的 "Assets" 中寻找 docker-<version>-windows-amd64.msi)。

步骤 3:配置 Docker 守护进程 (可选)

如果是生产环境,您可能需要修改配置文件以指定镜像源(如阿里云、腾讯云等国内镜像提速)或调整资源限制。
配置文件路径通常为:C:ProgramDataDockerconfigdaemon.json

例如,添加国内镜像提速器:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://huecker.io"
  ]
}

修改后重启服务:

Restart-Service docker

关键区别:Windows 容器 vs Linux 容器

在 Windows Server 2022 上运行时,您需要决定运行哪种类型的容器:

特性 Windows 容器 Linux 容器 (WLC)
基础镜像 基于 Windows Server Core 基于 Alpine, Ubuntu, Debian 等
适用场景 .NET Framework, IIS, 传统 Windows 应用 Node.js, Python, Go, Java, Nginx 等主流开源栈
内核依赖 共享宿主机的 Windows 内核 需要 WSL2 或 Hyper-V 隔离的 Linux 内核
启动速度 较快 稍慢 (需启动轻量级 VM)
Dockerfile 指令 FROM mcr.microsoft.com/windows/servercore:ltsc2022 FROM node:alpine, FROM python:3.9

如何切换?

  • Windows 容器:默认模式。
  • Linux 容器:在 Docker Desktop 右下角图标菜单中选择 "Switch to Linux containers";或在命令行中设置环境变量 set DOCKER_DEFAULT_PLATFORM=linux

常见问题排查

  1. 错误:The container operating system does not match the host operating system.

    • 原因:您试图在 Windows 宿主机上运行 Linux 镜像,但未切换到 Linux 容器模式。
    • 解决:在 Docker Desktop 菜单中切换模式,或在 PowerShell 中设置 DOCKER_DEFAULT_PLATFORM=linux
  2. 错误:No such image or container.

    • 原因:网络问题导致无法拉取镜像。
    • 解决:配置 daemon.json 中的镜像提速器地址。
  3. 权限不足。

    • 解决:确保以 Administrator 身份运行 PowerShell 或 CMD。

总结

  • 如果是开发或临时测试,直接使用 Docker Desktop 是最快路径。
  • 如果是生产环境,建议使用 Docker Engine + Hyper-V 方案,并根据业务需求选择 Windows 或 Linux 容器模式。
  • 无论哪种方式,请务必记得配置国内镜像提速,否则拉取镜像会非常缓慢。
未经允许不得转载:云知识CLOUD » windows server 2022 docker安装?