Docker(CE版本18.09.1)踩坑笔记(四)------Swarm集中管理Docker

网友投稿 247 2022-10-22

Docker(CE版本18.09.1)踩坑笔记(四)------Swarm集中管理Docker

上篇文章中,执行 docker swarm init 之后,得到了一个 token,本文中,我们将利用这个 token 构造多个 Docker 机器的集中化管理。 在进行集群化之前,你需要多准备1-2台安装好 Docker 的机器。

在执行完 docker swarm init 之后,使用下面指令查看当前所有节点

docker node ls

输出内容中可以看到我们当前的机器:

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONyipgq87kiwbq2rwcp7ni5b0eq * localhost.localdomain Ready Active Leader 18.09.1

我们假定两台Docker服务器A和B,A作为主,B作为从,当然你应该修改 A B 两台服务器的 HOSTNAME,来达到后面区分的目的。这里我们只将B的HOSTNAME修改为 10.150.1.60。

在A机器上,开放防火墙 2377 端口,以支持其他机器可以通过这个端口注册到A机器的 swarm 上。

firewall-cmd --zone=public --add-port=2377/tcp --permanentfirewall-cmd --reload

查看是否添加成功:

firewall-cmd --list-ports

在B机器上,执行

docker swarm join --token SWMTKN-1-32h9o052kscg6h04qsi0t0r5orqgqv5j3nufjoup6i7n1crvnv-21ml1d9niakydkp7dw2um2xk7 10.150.1.99:2377

提示 This node joined a swarm as a worker. 即表示B机器加入成功。

这时,在A机器上执行  docker node ls 可以看到如下结果

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION4u65amsuuwtoqm295h8ai0rb1 10.150.1.60 Ready Active 18.09.0yipgq87kiwbq2rwcp7ni5b0eq * localhost.localdomain Ready Active Leader 18.09.1

已经有两个节点。

然后发布你的程序

docker stack deploy -c docker-compose.yml yourapp

然后执行 docker stack ps yourapp 即可看到应用部署到了两台不同的Docker服务器上

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSyc9ryhcqfl4u yourapp_web.1 walli/yourapp:v1.0.0 10.150.1.60 Running Running 6 minutes ago73yjb566n35r yourapp_web.2 walli/yourapp:v1.0.0 localhost.localdomain Running Running 9 minutes agotqh9jti3s7x0 yourapp_web.3 walli/yourapp:v1.0.0 localhost.localdomain Running Running 9 minutes ago

其实这中间的过程应该是,你应该在 A B 两台机器上都使用 docker login 登录你的账号,然后将上一篇文章中制作的带tag镜像上传到 Docker 服务器上,这时候你在 A机器(Swarm管理端)去发布你的应用的时候,在B机器上才能正常下载这个镜像并且安装。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker(CE版本18.09.1)踩坑笔记(五)------ 指令汇总
下一篇:Mybatis如何根据List批量查询List结果
相关文章

 发表评论

暂时没有评论,来抢沙发吧~