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

版权声明: https://blog.csdn.net/zhugeaming2018/article/details/81905670

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』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 
![](https://upload-images.jianshu.io/upload_images/11223715-186ba57fd4d70d5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-e36bdc9733494144.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

# 在docker-manager中查看,正常运行的只有5个
docker service ls
# 查看详细的情况,docker-work2中的容器已经shutdown了,又起来了一个
docker service ps demo 
![](https://upload-images.jianshu.io/upload_images/11223715-3f308aeac3567982.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 删除service的效果
docker service rm demo

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


往期精彩
  1. docker导学(一)
  2. 容器的技术概述(二)
  3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
  4. docker官网介绍(四)
  5. 如何在mac上安装docker(五)
  6. 如何在window上安装docker(六)
  7. 如何在mac上通过vagrant安装虚拟机(七)
  8. 如何在window上通过vagrant安装虚拟机(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
  12. docker架构和底层技术(12)
  13. docker Image概述(13)
  14. 手动建立一个base Image(14)
  15. 什么是Container(15)
  16. 构建自己的Docker镜像(16)
  17. Dockerfile详解(17)
  18. 镜像的发布(18)
  19. Dockerfile实战(19)
  20. 容器的操作(20)
  21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
  22. 容器的资源限制(22)
  23. docker网络(23)
  24. docker学习必会网络基础(24)
  25. Linux网络命名空间(25)
  26. Docker Bridge详解(26)
  27. 容器之间的Link(27)
  28. 容器的端口映射(28)
  29. 容器网络之host和none(29)
  30. 多容器复杂应用的部署(30)
  31. overlay网络和etcd实现多机的容器通信(31)
  32. docker的数据持久化存储和数据共享(32)
  33. windows下vagrant 通过SecureCRT连接centos7(33)
  34. 数据持久化之Data Volume(34)
  35. 数据持久化之bind Mounting(35)
  36. docker 使用bind Mounting实战(36)
  37. docker容器安装wordpress(37)
  38. docker Compose到底是什么(38)
  39. Docker Compose的安装和基本使用(39)
  40. Docker 水平扩展和负载均衡(40)
  41. Docker compose 部署一个复杂的应用(41)
  42. 容器编排Docker Swarm介绍(42)
  43. docker-swarm创建一个多节点集群(43)
  44. play with docker 的使用(44)
    image

猜你喜欢

转载自blog.csdn.net/zhugeaming2018/article/details/81905670