docker如何在windows server 2019运行?

Windows Server 2019 上运行 Docker,可以通过安装 Docker EE(Enterprise Edition) 或使用 Microsoft 提供的容器功能 + Docker 社区版(Docker CE) 来实现。以下是详细步骤:


✅ 前提条件

  1. 操作系统版本:Windows Server 2019(建议使用最新更新的版本,如 2019 Datacenter 或 Standard)。
  2. 系统角色:启用 容器 功能。
  3. PowerShell 管理权限:需要以管理员身份运行。
  4. 网络连接:用于下载 Docker 安装包和模块。

🛠️ 步骤一:安装容器功能

以管理员身份运行 PowerShell:

# 安装容器功能
Install-WindowsFeature -Name Containers

# 重启服务器
Restart-Computer -Force

🛠️ 步骤二:安装 Docker

方法一:使用 Microsoft 提供的脚本安装 Docker EE(推荐用于生产环境)

注意:Docker EE 是企业版,适合 Windows Server。

# 从 PowerShell Gallery 安装 DockerMsftProvider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

# 安装 Docker 最新版本
Install-Package -Name docker -ProviderName DockerMsftProvider -Force

# 重启服务器
Restart-Computer -Force

这种方式会自动安装适用于 Windows Server 的 Docker 引擎(Docker EE)。


方法二:手动安装 Docker CE(社区版,非官方支持,但可用)

注意:Docker 官方不再为 Windows Server 直接提供 CE 安装包,但你可以手动部署。

  1. 下载 Docker 二进制文件(适用于 Windows):
# 下载最新版 Docker daemon(示例)
Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/docker-20.10.17.zip" -OutFile "docker.zip" -UseBasicParsing

# 解压
Expand-Archive docker.zip -DestinationPath $Env:ProgramFiles -Force
  1. 将 Docker 添加到系统路径:
# 添加到环境变量
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:Program Filesdocker", [EnvironmentVariableTarget]::Machine)

# 刷新环境变量
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
  1. 安装 Docker 为 Windows 服务:
# 注册 Docker 服务
& $Env:ProgramFilesdockerdockerd.exe --register-service
  1. 启动 Docker 服务:
Start-Service docker

✅ 验证 Docker 是否正常运行

docker --version
docker info

运行一个测试容器:

docker run hello-world:nanoserver

或运行一个 Windows Server Core 容器:

docker run mcr.microsoft.com/windows/servercore:ltsc2019 echo "Hello from Windows Container!"

🔧 常见问题与注意事项

问题 解决方法
hello-world 镜像拉取失败 确保使用 nanoserver 版本的镜像,如 hello-world:nanoserver
镜像不兼容 Windows 容器必须与宿主机版本兼容(如 LTSC2019 镜像对应 Windows Server 2019)
Docker 服务无法启动 检查是否启用 Hyper-V 和容器功能,查看事件日志
网络问题 确保防火墙未阻止 Docker,或使用 docker network 调试

📦 可选:安装 Docker Compose

# 下载 Docker Compose
Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-windows-x86_64.exe" -OutFile "$Env:ProgramFilesdockerdocker-compose.exe"

# 验证
docker-compose --version

🔄 更新 Docker

使用 DockerMsftProvider 方式更新:

Update-Package -Name docker -ProviderName DockerMsftProvider
Restart-Service docker

✅ 总结

步骤 命令
启用容器功能 Install-WindowsFeature Containers
安装 Docker Install-Package -Name docker -ProviderName DockerMsftProvider
启动服务 Start-Service docker
验证 docker info

💡 提示

  • Windows 容器与 Linux 容器不兼容(除非使用 WSL2,但 Windows Server 2019 不支持 WSL2)。
  • 推荐使用 Windows Server CoreNano Server 镜像。
  • 镜像标签需与主机 OS 版本匹配(如 ltsc2019)。

如需进一步配置(如私有镜像仓库、TLS、Swarm 模式),可继续扩展。

需要我提供自动化安装脚本吗?

未经允许不得转载:秒懂云 » docker如何在windows server 2019运行?