奋斗
努力

在windows server 2019上部署docker容器?

云计算

在 Windows Server 2019 上部署 Docker 容器,通常使用 Docker Desktop for Windows(适用于桌面版)或 Docker EE/CE on Server(适用于服务器版)。由于 Windows Server 2019 是服务器操作系统,官方推荐且最稳定的方式是安装 Docker Engine for Windows (Server),而不是 Docker Desktop(后者主要用于开发环境)。

以下是完整的部署步骤:


✅ 前提条件

  • Windows Server 2019 已安装最新累积更新。
  • 启用 Hyper-V 功能(Docker 依赖 Hyper-V 容器技术)。
  • 系统为 64 位。
  • 建议关闭杀毒软件临时干扰(生产环境请配置白名单)。

🔧 步骤 1:启用 Hyper-V 和容器功能

以管理员身份打开 PowerShell,执行以下命令:

# 启用 Hyper-V 功能
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

# 启用 Containers 功能(可选,但推荐)
Install-WindowsFeature -Name Containers -Restart

⚠️ 注意:重启后需等待系统完全启动。


📦 步骤 2:下载并安装 Docker Engine

访问微软官方 Docker 仓库获取安装包:

🔗 下载地址(官方推荐):
https://github.com/microsoft/Docker/releases

选择适合 Windows Server 2019 的版本,例如:

  • docker-ce-24.0.x-x.x.x-windows-x86_64.zip(社区版 CE)
  • 或从 Microsoft Store 安装(仅限部分场景)

安装方式一:使用 MSI 安装包(推荐)

  1. 下载 docker-ce-<version>.msi
  2. 双击运行,按向导完成安装。
  3. 安装过程中选择 “Windows Containers” 模式(默认)。

安装方式二:使用 PowerShell 脚本自动安装(高级用户)

# 设置环境变量
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

# 下载 Docker 引擎
Invoke-WebRequest -Uri "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" -OutFile "$env:TEMPdocker.zip"

# 解压
Expand-Archive -Path "$env:TEMPdocker.zip" -DestinationPath "$env:TEMPdocker"

# 将 docker.exe 添加到 PATH
Add-Content $env:USERPROFILE.profile "setx PATH ""$env:TEMPdocker;$env:PATH"""

# 重启终端或重新加载 profile
Update-SessionEnvironment

💡 更推荐使用官方提供的 Setup.ps1 脚本(见下方链接):
https://raw.githubusercontent.com/microsoft/Windows-Containers/main/tools/setup-docker.ps1


▶️ 步骤 3:验证 Docker 是否安装成功

打开新的 PowerShell 窗口(确保路径已刷新),运行:

docker --version
docker info

如果看到版本信息和详细信息,说明安装成功。


🐳 步骤 4:拉取并运行第一个容器

# 拉取一个测试镜像
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019

# 运行容器
docker run --rm -it mcr.microsoft.com/windows/nanoserver:ltsc2019 powershell

你将进入一个 Windows Nano Server 的命令行环境。


🛡️ 额外建议(生产环境)

项目 建议
网络模式 使用 nat 或 transparent 模式,避免桥接冲突
存储驱动 默认 windowsfilter,可改为 ntfs 优化性能
日志轮转 配置 daemon.json 限制日志大小:
{"log-driver": "json-file", "log-opts": {"max-size":"10m", "max-file":"3"}}
安全加固 禁用不必要的端口,定期更新镜像和引擎

创建 C:ProgramDataDockerconfigdaemon.json 文件内容示例:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "windowsfilter"
}

然后重启 Docker 服务:

Restart-Service docker

❓ 常见问题排查

问题 解决方案
docker: command not found 检查 PATH 是否包含 Docker 目录,重启终端
Cannot connect to the Docker daemon 确认 docker 服务正在运行:Get-Service docker
容器无法联网 检查防火墙规则,允许 Docker 相关端口(如 2375, 2376)
内存不足 调整 Docker 资源限制:docker update --memory=2g <container>

📚 参考文档

  • 官方文档:https://docs.docker.com/engine/install/windows-server/
  • GitHub 仓库:https://github.com/microsoft/Windows-Containers
  • 镜像仓库:https://mcr.microsoft.com/

✅ 完成以上步骤后,你即可在 Windows Server 2019 上稳定运行 Docker 容器了。如需进一步集成 Kubernetes、CI/CD 或监控,可在此基础上扩展。

需要我为你生成一个自动化部署脚本(.ps1)吗?

未经允许不得转载:云服务器 » 在windows server 2019上部署docker容器?