本文主要讲述如何在 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 ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
6gln03vr6814qbs0izau27csw * node1 Ready Active Leader 20.10.6
sjwlf1zh3ict9t415m5nqhpy6 node2 Ready Active 20.10.6
wawizhmt4s5bk2yxqo5e36rzz 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 nginx
Creating network nginx_default
Creating service nginx_nginx
yishao@node1:~/nginx$ docker stack ls
NAME SERVICES ORCHESTRATOR
nginx 1 Swarm
yishao@node1:~/nginx$ docker stack ps nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
x4m2guy57y8a nginx_nginx.1 nginx:latest node2 Running Running 17 seconds ago
cmjhtqzhqwtr nginx_nginx.2 nginx:latest node3 Running Running 1 second ago
qrm2qsvt6aby nginx_nginx.3 nginx:latest node1 Running Running 17 seconds ago
yishao@node1:~/nginx$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c9baac540686 nginx:latest "/docker-entrypoint.…" 28 seconds ago Up 26 seconds 80/tcp nginx_nginx.3.qrm2qsvt6abyt96ndixs16g77
复制代码
yishao@node2:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58142d2413c8 nginx:latest "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp nginx_nginx.1.x4m2guy57y8a743dfi1ab2fyz
复制代码
yishao@node3:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41ba407e6b20 nginx:latest "/docker-entrypoint.…" 55 seconds ago Up 53 seconds 80/tcp nginx_nginx.2.cmjhtqzhqwtrleha8fgajqqs4
复制代码
至此最简单的 Swarm+Stack 一站式部署容器集群搭建成功
参考:(VMware)ubuntu 环境下搭建 docker 环境
评论