本文主要讲述如何在 win10 系统上,使用 vmware 安装 Ubuntu 虚拟机,搭建 Swarm+Stack 一站式部署容器集群
版本约定
试验电脑系统为 Windows 10 专业版
VMware 版本为 VMware Workstation 16 Pro
Ubuntu 版本为 Ubuntu 20.04.2 LTS
Docker 版本为 Docker version 20.10.6
docker-compose 版本为 docker-compose version 1.29.2
Swarm 集群规划
虚拟机名称 username hostname IP 集群角色
node-1 yishao node1 192.168.57.131 Leader
node-2 yishao node2 192.168.57.132
node-3 yishao node3 192.168.57.133
Docker 单机部署
可以参考笔者另外一篇文章,里面有比较详细的讲述,根据此文章的步骤我们可以完成 Docker 单机环境的部署, 并完成 node-1 的安装和配置:
克隆虚拟机
同样根据笔者另外一篇文章 最后一章节内容,对已经完成的虚拟机 node-1 进行克隆,并分别命名为 node-2、node-3,相关注意点已经在文中做了详细讲解。
克隆完成后分别将 node-2、node-3 的 hostname 设置为 node2、node3,IP 设置为 192.168.57.132、192.168.57.133
至此我们就得到了三台部署了单机 Docker 环境
虚拟机名称 username hostname IP
node-1 yishao node1 192.168.57.131
node-2 yishao node2 192.168.57.132
node-3 yishao node3 192.168.57.133
接下来的工作就需要我们将这三台单机 Docker 配置成集群环境
Swarm 配置
yishao@node1:~$ docker swarm init
复制代码
yishao@node2:~$ docker swarm join --token SWMTKN-1-0882whu3j7zzpvb0cfc3hhidrq7abz8jvbfq63qq0itbl1wclo-b626cuw5lj31yysta0593yhuk 192.168.57.131:2377
复制代码
yishao@node3:~$ docker swarm join --token SWMTKN-1-0882whu3j7zzpvb0cfc3hhidrq7abz8jvbfq63qq0itbl1wclo-b626cuw5lj31yysta0593yhuk 192.168.57.131:2377
复制代码
yishao@node1:~$ docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION6gln03vr6814qbs0izau27csw * node1 Ready Active Leader 20.10.6sjwlf1zh3ict9t415m5nqhpy6 node2 Ready Active 20.10.6wawizhmt4s5bk2yxqo5e36rzz node3 Ready Active 20.10.6
复制代码
至此 swarm、stack 环境已经搭建成功~
部署应用
version: '3.1'services: nginx: image: nginx ports: - 8888:80 deploy: mode: replicated replicas: 3
复制代码
yishao@node1:~/nginx$ docker stack deploy -c docker-compose.yml nginx
复制代码
yishao@node1:~/nginx$ docker stack deploy -c docker-compose.yml nginxCreating network nginx_defaultCreating service nginx_nginxyishao@node1:~/nginx$ docker stack lsNAME SERVICES ORCHESTRATORnginx 1 Swarmyishao@node1:~/nginx$ docker stack ps nginxID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSx4m2guy57y8a nginx_nginx.1 nginx:latest node2 Running Running 17 seconds agocmjhtqzhqwtr nginx_nginx.2 nginx:latest node3 Running Running 1 second agoqrm2qsvt6aby nginx_nginx.3 nginx:latest node1 Running Running 17 seconds agoyishao@node1:~/nginx$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc9baac540686 nginx:latest "/docker-entrypoint.…" 28 seconds ago Up 26 seconds 80/tcp nginx_nginx.3.qrm2qsvt6abyt96ndixs16g77
复制代码
yishao@node2:~$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES58142d2413c8 nginx:latest "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp nginx_nginx.1.x4m2guy57y8a743dfi1ab2fyz
复制代码
yishao@node3:~$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES41ba407e6b20 nginx:latest "/docker-entrypoint.…" 55 seconds ago Up 53 seconds 80/tcp nginx_nginx.2.cmjhtqzhqwtrleha8fgajqqs4
复制代码
至此最简单的 Swarm+Stack 一站式部署容器集群搭建成功
参考:(VMware)ubuntu 环境下搭建 docker 环境
评论