10 分钟搭建 4 节点 Linux+Windows 混合 Docker Swarm 集群:docker-windows-box 自动部署与 overlay 网络 whoami 演示
【免费下载链接】docker-windows-boxVarious Vagrant envs with Windows 2019/10 and Docker, Swarm mode, LCOW, WSL2, ...项目地址: https://gitcode.com/gh_mirrors/do/docker-windows-box
docker-windows-box 是一套开箱即用的 Vagrant 环境集合,专注 Windows 容器与 Docker 场景。本教程带你用一条vagrant up命令自动搭建 4 节点 Linux+Windows 混合 Docker Swarm-mode 集群,并通过 overlay 网络上的 whoami 服务直观验证跨操作系统负载均衡,是新手上手混合 Swarm 的完整指南 🚀
一、为什么用 docker-windows-box 搭建混合 Swarm 集群
手工搭建一个 Linux + Windows Server 的 Swarm 集群,你需要分别处理:
- Linux 节点安装 Docker Engine 并执行
swarm init - Windows 节点更新 Docker EE Preview、放行 2377/7946/4789 等 Swarm 端口
- 生成 join token、按顺序让各节点加入集群
- 配置 overlay 网络与端口转发
docker-windows-box 的swarm-mode目录把这些步骤全部封装成了 provisioning 脚本,一条命令完成全部工作。项目内还提供了 WSL2、LCOW、经典 Swarm 等多种其他 Windows 容器场景可参考。
二、一键部署 4 节点集群
1. 准备工作
- 安装 Vagrant 与 VirtualBox 或 VMware(Fusion/Workstation)
- 内存建议 12GB 以上(每节点 2GB)
- 进入项目目录:
git clone https://gitcode.com/gh_mirrors/do/docker-windows-box cd docker-windows-box/swarm-mode2. 启动集群
vagrant upVagrant 会自动创建 4 台虚拟机、安装 Docker、初始化 Swarm 并让节点加入集群,全程无需人工干预。
3. 集群节点与角色一览
| 节点 | IP 地址 | 内存 | 角色 |
|---|---|---|---|
| sw-lin-01 | 192.168.36.2 | 2GB | Manager |
| sw-lin-02 | 192.168.36.3 | 2GB | Worker |
| sw-win-01 | 192.168.36.4 | 2GB | Worker |
| sw-win-02 | 192.168.36.5 | 2GB | Worker |
4. 资源有限?启动最小 2 节点集群
宿主机内存吃紧时,只需 1 台 Linux + 1 台 Windows 也能体验混合集群:
vagrant up sw-lin-01 sw-win-01三、4 个节点如何自动组成 Swarm
1. Manager 节点自动初始化
sw-lin-01 启动后,Vagrantfile 按顺序执行swarm-mode/scripts/install-docker.sh(安装 Docker Engine)和swarm-mode/scripts/docker-swarm-init.sh(执行docker swarm init),随后由swarm-mode/scripts/run-visualizer.sh在 Manager 上自动部署可视化面板。
2. Windows 节点自动放行端口并加入集群
两台 Windows 节点会依次执行swarm-mode/scripts/fix-second-network.ps1配置静态 IP、swarm-mode/scripts/open-swarm-mode-ports.ps1放行 Swarm 必需的 2377(集群管理)、7946(节点通信)、4789(overlay 网络 UDP)端口,最后由swarm-mode/scripts/docker-swarm-join.ps1向 Manager 申请 token 并加入集群。
SSH 登录任一节点执行docker node ls,即可看到全部节点就绪(sw-win-01 为 Leader):
四、用 Visualizer 直观验证混合集群
集群启动后 Manager 节点已自动部署了 Swarm Visualizer 服务,浏览器打开http://192.168.36.2:8080,可以一眼看到 4 个节点及其上的任务分布——2 台 Linux + 2 台 Windows 的混合集群一目了然:
五、overlay 网络 whoami 服务演示 🎯
这是本环境最精彩的实验:同一服务的副本同时跑在 Linux 和 Windows 上,通过 overlay 网络跨 OS 互相访问。
1. 创建 whoami 服务
登录 Manager 节点后只需一条命令,或使用辅助脚本swarm-mode/demo/start-whoami.sh:
docker service create --name=whoami -p 8000:8000 -e PORT=8000 stefanscherer/whoami:1.2.02. 用 curl 验证跨平台负载均衡
在宿主机上每 0.5 秒请求一次该服务(可运行swarm-mode/demo/curl-whoami.sh),注意观察响应——容器 ID 后面的linux/amd64与windows/amd64交替出现,说明请求被轮询分发到了不同操作系统的节点:
curl http://192.168.36.2:80003. 横向扩展到 4 副本
docker service scale whoami=4Swarm 调度器会自动把 4 个副本分配到不同节点。配合 Visualizer 观察任务分布,就能理解混合集群中node.platform.OS这一平台约束如何工作。
六、常见问题与小结
- Windows 节点启动较慢:Windows Server 镜像初始化与端口配置耗时较长,耐心等待 provisioning 完成即可
- 验证集群:登录 Manager 执行
docker node ls,所有节点 STATUS 为 Ready 即表示成功 - 清理环境:
vagrant destroy -f一键销毁全部节点
docker-windows-box 把混合 Swarm 集群最繁琐的多系统编排全部脚本化,让你把精力花在理解 Swarm 与 overlay 网络上。从vagrant up到 curl 验证跨 OS 负载均衡,不到 10 分钟即可完成——建议动手试试,实践是最好的老师 💪
【免费下载链接】docker-windows-boxVarious Vagrant envs with Windows 2019/10 and Docker, Swarm mode, LCOW, WSL2, ...项目地址: https://gitcode.com/gh_mirrors/do/docker-windows-box
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考