Windows 容器简介
Docker Desktop Windows、与 Linux 容器对照。
25 分钟
Windows 容器简介
Docker Desktop for Windows 可在开发机跑容器;底层通过 WSL2 或 Hyper-V 运行 Linux 容器(默认)。Windows 容器与 Linux 容器镜像不互通——CodeRoadMap 生产镜像按 Linux 构建(docker-essentials)。
学习目标
- 了解 Docker Desktop Windows 与 WSL2 关系
- 区分 Linux 容器 vs Windows 容器
- 在 Windows 上用 PowerShell 调用 docker CLI
核心内容
Docker Desktop 架构
Windows 11 + Docker Desktop
├─ WSL2 (Ubuntu) ← Linux 容器实际跑在这里
├─ docker CLI (PowerShell / pwsh 调用)
└─ 可选:Windows 容器模式(切换后不能混跑 Linux 镜像)
安装后 PowerShell 里直接:docker version、docker ps。与 Linux 命令相同(docker-cli)。
PowerShell 调 docker CLI
docker ps --format "table {{.Names}}\t{{.Ports}}\t{{.Status}}"
docker run -d --name crm-mysql -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 mysql:8
Invoke-RestMethod http://127.0.0.1:8080/actuator/health # backend 起来后
多行命令用反引号 ` 续行(Bash 用 \)。
Linux 容器 vs Windows 容器
| Linux 容器 | Windows 容器 | |
|---|---|---|
| 基础镜像 | node:20、eclipse-temurin:21 | mcr.microsoft.com/windows/servercore |
| 本站 | ✅ CI / 生产标准 | ❌ 非目标平台 |
| 切换 | Docker Desktop → Settings → General |
本站 docker.yml workflow 在 ubuntu-latest 构建 Linux 镜像(gha-docker)。
docker compose up -d 与 docker logs 在 PowerShell 中与 Bash 完全相同;卷挂载注意 WSL2 路径(/mnt/h/... 或 Desktop 文件共享)。
何时不用 Windows 容器
CodeRoadMap 栈(Spring Boot + Next.js + MySQL)面向 Linux 容器;Windows 容器体积大、生态小。Windows 角色是 开发 + docker CLI 客户端,不是跑 Windows Server Core 镜像。
练习
- 确认 Client 与 Server 版本