您现在的位置是:首页 >技术交流 >记录docker swarm的使用网站首页技术交流

记录docker swarm的使用

泛舟五湖之间 2023-07-02 08:00:02
简介记录docker swarm的使用
在前面的几篇文章中我们依次学习了dockerfile、docker-compose的使用,接下来是docker有一个比较
重要的使用,docker swarm的使用,与dockerfile和docker-compose相比较而言,docker swarm是在
多个服务器或主机上创建容器集群服务

准备

首先准备三台装好了docker的虚拟机:
dockerswarm1:192.168.47.251,作为manager节点
dockerswarm2:192.168.47.252,作为worker节点
dockerswarm3:192.168.47.253,作为worker节点
并且三台之间可以进行互相ping通。然后就可以开始启动docker swarm了,首先输入

docker node ls

返回结果:
在这里插入图片描述
表示没有swarm集群存在,且当前节点也不是管理节点。
那么我们就吧当前这个节点作为我们的管理节点,即192.168.47.251.
首先执行如下命令:

启动swarm

docker swarm init --advertise-addr 192.168.47.251

返回结果如图所示:
在这里插入图片描述
这里我们已经完成了manager的设置,从返回的提示都可以看出来,如果想要加入一个worker节点到当前的swarm,就执行如下命令:

docker swarm join --token SWMTKN-1-64211ybe5t29ia743mjc1q4vzw3hrsmlzqrbcrnr8djcwti0cw-asgkc27ezwlujmuudlv07txwj 192.168.47.251:2377

接着我们就在其他两个docker节点使用这个命令,加入到swarm集群中去:
如图所示,说明我们已经加入到swarm集群中去了:
在这里插入图片描述
然后我们在manager节点输入命令:

docker node ls

返回结果为如图所示:

在这里插入图片描述

使用docker swarm

接下来我们开始使用docker swarm,一般都是在manager上执行相关的docker swarm的命令,所以manger节点也是docker swarm的门户,基本上所有的命令都是从manager上执行的。
如图所示,是我在工作节点上执行命令的提示:
在这里插入图片描述

首先我们用docker拉取一个简单的镜像运行:

docker pull nginx:latest

接着创建一个私有网络,

docker network create -d overlay swarm_network

然后通过命令:

docker network ls

我们看到了我们创建的自定义网络:
在这里插入图片描述
接着我们就可以启动我们的nginx了

docker service create --replicas 1 --network swarm_network --name swarm_nginx -p 80:80 nginx:latest

如图所示,服务启动成功了:
在这里插入图片描述
此时我们设置的只有副本,所以检查的时候只有manager上有服务执行,现在我们进行扩容。

扩容swarm的服务

在这里插入图片描述
现在我们把副本扩容到了4个,经过manager的分配,我们发现在不同的节点上都有服务开始运行了。
dockerswarm1的manager上运行的服务:
在这里插入图片描述
在dockerswarm2上的worker上运行的服务:
在这里插入图片描述
在dockerswarm3上的worker上运行的服务:
在这里插入图片描述

docker service update --replicas 3 swarm_nginx

该命令也能达到和上面命令同样的效果

下线一个节点

docker node update --availability drain dockerswarm3

如图所示效果:
在这里插入图片描述
同时我们会发现刚刚在dockerswarm3上下线的服务,现在前部转移到了dockerswarm1和dockerswarm2上了:
在这里插入图片描述
在这里插入图片描述

激活一个下线中的服务

docker node update --availability active dockerswarm3

如图所示,已经激活了:
在这里插入图片描述

移除任务

把我们刚刚创建的swarm_nginx任务移除,如图所示:
执行命令:

docker service ps swarm_nginx

移除命令:

docker service rm swarm_nginx

在这里插入图片描述

删除节点

在对应的节点上执行如下命令:

docker swarm leave

在这里插入图片描述
在这里插入图片描述
当依次的把manager节点即,dockerswarm1删除时,整个集群就会自动删除。
在这里插入图片描述
docker swarm基本使用就这么多。后续我们会继续推出docker的比较理论化的东东。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。