设为首页 收藏本站
查看: 988|回复: 0

[经验分享] Docker swarm 使用笔记

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2019-2-21 09:47:56 | 显示全部楼层 |阅读模式
###########docker swarm ###############配置
https://docs.docker.com/engine/swarm/manage-nodes/
https://docs.docker.com/engine/swarm/manage-nodes/#promote-or-demote-a-node
####################################

1,docker 1.12 版本以上
manager-192.168.120.131
work-192.168.120.132
1.管理端执行;
[root@docker-manager ~]# docker swarm init --advertise-addr 192.168.120.131
或者 docker swarm init --listen-addr 192.168.18.131:2377
Swarm initialized: current node (0qo8kjtlwpaymmlor6zl8wc9n) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-0wsk4hmv66dje8f5h7fv4bzs99i8lw999nu3i29cy5nlzoczjb-bb35ylrnwfmk2vl6f8wtxs8ur \
192.168.120.131:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Swarm集群端口, Docker Swarm集群开放了三个端口:
2377端口, 用于集群管理通信
7946端口, 用于集群节点之间的通信
4789端口, 用于overlay网络流量
[root@docker-manager ~]# firewall-cmd --zone=public --add-port=7946/tcp --permanent
[root@docker-manager ~]# firewall-cmd --zone=public --add-port=4789/tcp --permanent
[root@docker-manager ~]# firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=10.10.92.0/24 accept'
查看集群节点信息;
[root@docker-manager ~]# docker node ls
ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
329rf0jsxjezl4k3qnr11xtmp *  docker-manager  Ready   Active        Leader
7dcx2xlrc3zgo6x8d9u17tjy1    docker-work     Ready   Active
db6rjsszjn5z5cxwowwxisf6n    docker-work     Down    Active
[root@docker-manager ~]#
在Docker Swarm集群中,在删除Docker集群节点后,集群中该节点仍然存在,但是状态显示为Down, 需要在Swarm的Manager节点执行以下命令, 删除已经移除的Worker节点:
[root@centos7-Master ~]# docker node rm --force 4ukr7ghj4iuvb89gu0g5ok1d
4ukr7ghj4iuvb89gu0g5ok1d

2.3.2 更新Swarm集群节点
如果需要对Docker Swarm节点进行更新,需要在manager节点上执行命令:
[root@centos7-Master ~]# docker swarm update
Swarm updated.
3.3.3 获取 work 节点token
[root@docker-manager ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-607nbmlndpzmch1hdqtnpzhqrx4eufyt3cwfrr6ne3ge9iexdt-5xmz1ecalg9bhp3hiioy1n9ge \
192.168.120.131:2377
3.3.4 获取manage 节点信息;
[root@docker-manager ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-607nbmlndpzmch1hdqtnpzhqrx4eufyt3cwfrr6ne3ge9iexdt-5z4j7n2sn97zelbgvtm3uck3b \
192.168.120.131:2377

3.3.4 停机维护;
[root@docker-manager ~]# docker node update --availability drain docker-manager ########主机名称########
[root@docker-manager ~]# docker node ls
ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
329rf0jsxjezl4k3qnr11xtmp *  docker-manager  Ready   Drain         Leader
7dcx2xlrc3zgo6x8d9u17tjy1    docker-work     Ready   Active

3.3.5 开启状态;
[root@docker-manager ~]# docker node update --availability active docker-manager #######主机名称########
docker-manager
[root@docker-manager ~]# docker node ls
ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
329rf0jsxjezl4k3qnr11xtmp *  docker-manager  Ready   Active        Leader
7dcx2xlrc3zgo6x8d9u17tjy1    docker-work     Ready   Active
3.3.6 升级角色;(manger )
[root@docker-manager ~]# docker node promote docker-work
Node docker-work promoted to a manager in the swarm.
[root@docker-manager ~]# docker node ls
ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
329rf0jsxjezl4k3qnr11xtmp *  docker-manager  Ready   Active        Leader
7dcx2xlrc3zgo6x8d9u17tjy1    docker-work     Ready   Active        Reachable

3.3.7 降级角色;
[root@docker-manager ~]# docker node demote docker-work
Manager docker-work demoted in the swarm.
[root@docker-manager ~]# docker node ls
ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
329rf0jsxjezl4k3qnr11xtmp *  docker-manager  Ready   Active        Leader
7dcx2xlrc3zgo6x8d9u17tjy1    docker-work     Ready   Active

3.3.8 清除work 记录:
docker node rm 主机名

3.3.9 创建service;
[root@docker-manager ~]# docker service create --name my_web nginx
ezqmbbrsn4ecz975u2baajnoc

3.3.10 查看service
[root@docker-manager ~]# docker service ls
ID            NAME    REPLICAS  IMAGE  COMMAND
ezqmbbrsn4ec  my_web  0/1       nginx
[root@docker-manager ~]# docker service ps my_web
ID                         NAME      IMAGE  NODE            DESIRED STATE  CURRENT STATE                 ERROR
1a1diqyh70ot9wquf0yuvt0q3  my_web.1  nginx  docker-manager  Running        Preparing about a minute ago
3.3.11 删除service
[root@docker-manager ~]# docker service rm helloworld
[root@docker-manager ~]# docker service rm my_web

3.3.12 创建副本;
docker service create --replicas 3 --name web-nginx2 ping g.cn
3.3.13 扩容;scale
[root@docker-manager ~]# docker service scale helloworld=5
helloworld scaled to 5
[root@docker-manager ~]# docker service ls
ID            NAME        REPLICAS  IMAGE   COMMAND
8d6yob2chojp  helloworld  1/5       alpine  ping docker.com
3.3.14 减少:
[root@docker-manager ~]# docker service scale helloworld=2
helloworld scaled to 5
[root@docker-manager ~]# docker service ls
8d6yob2chojp  helloworld  0/1       alpine  ping docker.com
3.3.15 滚动更新服务;
[root@docker-manager ~]# docker service update  --image helloworld.1.2 helloworld
helloworld
.3.16 更新节点状态;(节点自动迁移)
[root@docker-manager ~]# docker node update --availability drain docker-work
docker-work
3.3.17
######################(节点恢复)############
[root@docker-manager ~]# docker node update --availability  active docker-work
[root@docker-manager ~]#docker service scale hellowrold=0
[root@docker-manager ~]#docker service scale hellowrold=4
3.18 Docker swarm mode overlay network security model
[root@docker-manager ~]# docker network ls
[root@docker-manager ~]# docker network create --driver overlay --subnet 10.10.10.0/24 --opt encrypted my-network
8mrnvm0rv7gdca48lazvyd8k8
创建服务 加入网络
[root@docker-manager ~]# docker service create --name my-web --replicas 3 --network my-network bazhuazhu/nginx
d660tgracne49w5q1mk36y0lf

服务端口暴露;                                             本机端口:容器端口
[root@docker-manager ~]# docker service update --publish-add 8080:80 my-web 服务名称
3.3.16 更新节点状态;
2.work 客户端执行;
(1).添加到集群;
[root@docker-work ~]#  docker swarm join     --token SWMTKN-1-607nbmlndpzmch1hdqtnpzhqrx4eufyt3cwfrr6ne3ge9iexdt-5xmz1ecalg9bhp3hiioy1n9ge     192.168.120.131:2377
This node joined a swarm as a worker.
(2).查看work 信息;
[root@docker-manager ~]# docker node inspect 7dcx2xlrc3zgo6x8d9u17tjy1 --pretty
(3).删除Swarm集群节点
[root@centos7-WorkerA ~]# docker swarm leave
Node left the swarm.
(4).如果想在Docker Swarm集群中删除Docker的节点, 需要在须删除的Docker节点下执行命令:  3.3.19 更新节点状态;
  2.work 客户端执行;
  (1).添加到集群;
  [root@docker-work ~]#  docker swarm join     --token SWMTKN-1-607nbmlndpzmch1hdqtnpzhqrx4eufyt3cwfrr6ne3ge9iexdt-5xmz1ecalg9bhp3hiioy1n9ge     192.168.120.131:2377
  This node joined a swarm as a worker.
  (2).查看work 信息;
  [root@docker-manager ~]# docker node inspect 7dcx2xlrc3zgo6x8d9u17tjy1 --pretty
  (3).删除Swarm集群节点
  [root@centos7-WorkerA ~]# docker swarm leave
  Node left the swarm.
  (4).如果想在Docker Swarm集群中删除Docker的节点, 需要在须删除的Docker节点下执行命令




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675182-1-1.html 上篇帖子: Docker(二十三)alpine 安装常用shell 命令 下篇帖子: docker中容器(Debian)安装软件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表