windows server2019使用docker?

Windows Server 2019 上使用 Docker 是完全可行的,但需要注意一些限制和配置要求。以下是详细的说明和操作步骤:


✅ 一、支持情况

Windows Server 2019 原生支持 Docker 容器,但仅支持 Windows 容器(不支持 Linux 容器,除非使用 WSL2,但 WSL2 不支持 Windows Server)。

  • ✅ 支持:Windows 容器(基于 Windows Server Core 或 Nano Server 镜像)
  • ❌ 不支持:Linux 容器(除非使用 Hyper-V 隔离 + LCOW,但已废弃且不稳定)

✅ 二、前提条件

  1. 操作系统版本

    • Windows Server 2019(建议安装最新补丁)
    • Datacenter 或 Standard 版本均可
  2. 硬件要求

    • 启用 Hyper-V容器 功能(需要支持虚拟化的 CPU)
    • 至少 4GB 内存(建议 8GB+)
    • 管理员权限
  3. PowerShell 管理权限


✅ 三、安装 Docker

方法一:使用 Microsoft 的官方脚本安装(推荐)

  1. 以管理员身份打开 PowerShell

  2. 安装 Docker-Microsoft PowerShell 模块(用于安装引擎):

    Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
  3. 安装 Docker Engine:

    Install-Package -Name docker -ProviderName DockerMsftProvider
  4. 安装完成后重启服务器:

    Restart-Computer -Force
  5. 验证 Docker 是否运行:

    docker --version
    docker run hello-world:nanoserver

⚠️ 注意:hello-world:nanoserver 是 Windows 容器的测试镜像。


方法二:手动下载并安装 Docker EE(企业版)

适用于企业环境或需要长期支持的场景:

  1. 下载 Docker EE:

    Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/2019/docker-20.10.17.zip" -OutFile "docker.zip" -UseBasicParsing

    (替换为最新稳定版本链接)

  2. 解压到 Program Files

    Expand-Archive docker.zip -DestinationPath $env:ProgramFiles
  3. docker 添加到系统路径:

    $env:Path += ";$env:ProgramFilesdocker"
  4. 安装为 Windows 服务:

    dockerd --register-service
    Start-Service docker

✅ 四、使用 Docker(Windows 容器)

1. 拉取 Windows 镜像示例:

docker pull mcr.microsoft.com/windows/servercore:ltsc2019
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019

2. 运行一个简单容器:

docker run -it mcr.microsoft.com/windows/servercore:ltsc2019 cmd

3. 构建自定义镜像(Dockerfile 示例):

FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

RUN Write-Host "Hello from Windows Container!"
CMD ["echo", "Hello World"]

构建:

docker build -t hello-win .
docker run hello-win

✅ 五、常见问题与注意事项

问题 解决方案
no matching manifest for windows/amd64 确保拉取的是 Windows 镜像(如 :nanoserver, :servercore),不要拉取 Linux 镜像
容器启动慢 Windows 镜像较大,首次启动需要时间
无法运行 Linux 容器 Windows Server 2019 不支持 WSL2,LCOW 已废弃
Docker 服务无法启动 检查是否启用 Hyper-V 和 Containers 功能

✅ 六、启用必要功能(如果未启用)

# 启用 Hyper-V(如果硬件支持)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All

⚠️ 注意:启用 Hyper-V 会要求重启。


✅ 七、推荐场景

  • 托管 .NET Framework / .NET Core 应用(Windows 版)
  • 迁移传统 Windows 应用到容器
  • 内部企业服务容器化(如 IIS、SQL Server on Windows)

❌ 八、不推荐场景

  • 需要运行 Linux 应用(应使用 Linux 服务器 + Docker)
  • 高密度容器部署(Windows 容器资源开销大)

✅ 九、后续管理

  • 使用 docker-compose(需单独安装)
  • 集成到 Kubernetes(如 AKS Windows 节点、本地 K8s 集群)
  • 使用 Portainer 等 UI 工具管理

✅ 总结

项目 支持情况
操作系统 ✅ Windows Server 2019
容器类型 ✅ Windows 容器(Server Core / Nano)
Linux 容器 ❌ 不支持(LCOW 已废弃)
安装方式 ✅ PowerShell 模块或手动安装
生产使用 ✅ 可用于生产(但资源消耗较高)

如果你有具体的应用场景(如部署 IIS、SQL Server、.NET 应用等),可以告诉我,我可以提供对应的 Docker 配置示例。

未经允许不得转载:秒懂云 » windows server2019使用docker?