为了账号安全,请及时绑定邮箱和手机立即绑定

『中级篇』docker-swarm中的Service创建维护和水平扩展(45)

通过上一节已经创建了1个manager和2个worker,现在看看如何使用。源码地址:https://github.com/limingios/docker中的No.5

service的操作

之前说docker-compose的时候提过service,一个service就是一个container一个容器,而在swarm中的service,是一个container,可能运行在我们的clus里面的任何一个节点上边。

  • docker-swarm 有个专门的命令 docker service

docker service create 和 docker run 的命令基本是一致的。在swarm下就不在使用docker run了,docker run 是在本地创建一个容器。我们在clus下创建的docker 容器不一定是运行在那个机器下。所以docker run 基本不用了。

docker service --help
docker servcie create 
docker run

  • 创建一个swarm的演示容器
docker service create --name demo busybox sh -c "while true;do sleep 3600;done"
docker service ls
#目前这个容器是运行在swarm-worker1上,这都是随机的。
docker service ps demo

docker service ls

  • 横向水平的扩展
#横向水平扩展至5个容器
docker service scale demo=5 
docker service ls
docker service ps demo

  • 自动恢复功能

    我们先去worker2中强制删除,然后查看manager的情况,在过一会通过命令查看docker service ls的情况

    # 在docker-work2 中删除 容器
    docker rm -f 容器2中的容器ID
    # 在docker-manager中查看,正常运行的只有4个
    docker service ls
    # 查看详细的情况,docker-work2中的容器已经shutdown了
    docker service ps demo 

过几十秒 在查看容器运行情况,自动回复之前要求的5个。

# 在docker-manager中查看,正常运行的只有5个
docker service ls
# 查看详细的情况,docker-work2中的容器已经shutdown了,又起来了一个
docker service ps demo 

  • 删除service的效果
docker service rm demo

PS:docker service 内部有很多复杂的操作,虽然各位老铁用了简单的 一个创建一个删除,但是底层里面会知道有多个容器,在那个机器上边,这些机器里面的容器应用运行那些命令,这就起到了集群管理。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.7万
获赞与收藏
1318

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消