1. 程式人生 > >docker swarm 管理服務

docker swarm 管理服務

docker swarm中服務的概念是:一個服務包含swarm叢集中多個節點,每個節點都可以部署服務,每個服務也包含多個相關的容器。

docker service --help
Commands:
  create      Create a new service
  inspect     Display detailed information on one or more services
  ls          List services
  ps          List the tasks of a service
  rm          Remove one or more services
  scale       Scale one or multiple replicated services
  update      Update a service

在主節點上建立一個服務,副本數是2個,防止服務在執行結束後退出,增加命令 ping "www.baidu.com"

[[email protected] ~]# docker service create --name busy-box --replicas 2 busybox ping "www.baidu.com"
dnmw2wdgs4xbj6bw3ma4d5jam

檢視節點的所有服務,

[[email protected] ~]# docker service ls
ID            NAME      MODE        REPLICAS  IMAGE
3z658klw8dbd  my-web    replicated  2/2       nginx:latest
dnmw2wdgs4xb  busy-box  replicated  2/2       busybox:latest
[[email protected] ~]# docker service create --replicas 3 --name redis  --update-delay 10s redis:3.0.6
383zekusyout2r639vmfx3ejy
[[email protected] ~]# docker service ps redis
ID            NAME     IMAGE        NODE     DESIRED STATE  CURRENT STATE            ERROR  PORTS
kta1fy9wcdzf  redis.1  redis:3.0.6  master   Running        Preparing 8 seconds ago         
bu3xvvq6jghu  redis.2  redis:3.0.6  master   Running        Preparing 8 seconds ago         
j7b7c0d86ey0  redis.3  redis:3.0.6  worker3  Running        Running 8 seconds ago           

檢視服務的具體的資訊

[[email protected] ~]# docker service ps busy-box
ID            NAME        IMAGE           NODE     DESIRED STATE  CURRENT STATE          ERROR  PORTS
mrv2xv10g1t5  busy-box.1  busybox:latest  worker3  Running        Running 3 minutes ago         
v26re4k304c2  busy-box.2  busybox:latest  master   Running        Running 3 minutes ago    

docker swarm 刪除一個服務

[[email protected] ~]# docker service rm my-web
my-web

docker swarm 服務更新,以一個常見的映象更新為例子

[[email protected] ~]# docker service create --replicas 3 --name redis  --update-delay 10s redis:3.0.6
383zekusyout2r639vmfx3ejy
[[email protected] ~]# docker service ps redis
ID            NAME     IMAGE        NODE     DESIRED STATE  CURRENT STATE            ERROR  PORTS
kta1fy9wcdzf  redis.1  redis:3.0.6  master   Running        Preparing 8 seconds ago         
bu3xvvq6jghu  redis.2  redis:3.0.6  master   Running        Preparing 8 seconds ago         
j7b7c0d86ey0  redis.3  redis:3.0.6  worker3  Running        Running 8 seconds ago           

docker swarm update 更新服務的映象

[[email protected] ~]# docker service update --image redis:latest redis
[[email protected] ~]# docker service ps  --filter "desired-state =running" redis
ID            NAME     IMAGE         NODE     DESIRED STATE  CURRENT STATE          ERROR  PORTS
nk7tktytm7kk  redis.1  redis:latest  master   Running        Running 4 minutes ago         
uobcdvbzq4kk  redis.2  redis:latest  worker3  Running        Running 4 minutes ago         
cdozh8bw6m8p  redis.3  redis:latest  worker3  Running        Running 4 minutes ago