docker(十六):docker-swarm开启服务以及动态拓展服务节点

一、    实现功能

swarm创建服务,将服务部署到docker集群上,保证集群的正常运行和可扩展化运行。

二、    service创建

1.    帮助

[vagrant@swarm-manager ~]$ docker service

Usage:  docker service COMMAND

Manage services

Commands:
  create      Create a new service
  inspect     Display detailed information on one or more services
  logs        Fetch the logs of a service or task
  ls          List services
  ps          List the tasks of one or more services
  rm          Remove one or more services
  rollback    Revert changes to a service's configuration
  scale       Scale one or multiple replicated services
  update      Update a service

Run 'docker service COMMAND --help' for more information on a command.

2.    创建服务(create service)

不用docker run,因为run是运行在本地,而service是启动服务在集群中运行,但是不确定是在那一台机器上运行。(1)帮助文档

[vagrant@swarm-manager ~]$ docker service create
"docker service create" requires at least 1 argument.
See 'docker service create --help'.

Usage:  docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]

Create a new service

(2)创建busybox新服务

[vagrant@swarm-manager ~]$ docker service create --name demo busybox sh -c "while true;do sleep
 3600;done"
image busybox:latest could not be accessed on a registry to record
its digest. Each node will access busybox:latest independently,
possibly leading to different nodes running different
versions of the image.

nz318g1cv6ogj6eiw1f1440ho
overall progress: 1 out of 1 tasks
1/1: running
verify: Service converged

3.查看开启服务

[vagrant@swarm-manager ~]$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
nz318g1cv6og        demo                replicated          1/1                 busybox:latest

ps:Replicated代表可以横向扩展

4.查看在那台机器

[vagrant@swarm-manager ~]$ docker service ps demo
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR                             PORTS
u61solupo2qk        demo.1              busybox:latest      swarm-manager       Running             Running 6 minutes ago
6tbxqyi4jt9b         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected 7 minutes ago   "No such image: busybox:latest"
vw1yafpwdimu         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected 7 minutes ago   "No such image: busybox:latest"
v38915xn6m5v         \_ demo.1          busybox:latest      swarm-worker1       Shutdown            Rejected 7 minutes ago   "No such image: busybox:latest"
bvlz225c22gh         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Shutdown 7 minutes ago

5.在manager管理节点上查看进程

[vagrant@swarm-manager ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
f4a2ba029965        busybox:latest      "sh -c 'while true;d…"   7 minutes ago       Up 7 minutes                            demo.1.u61solupo2qkph5z62jrsbpm9

6.拓展服务节点个数至5个

[vagrant@swarm-manager ~]$ docker service scale demo=5
demo scaled to 5
overall progress: 5 out of 5 tasks
1/5: running   [==================================================>]
2/5: running   [==================================================>]
3/5: running   [==================================================>]
4/5: running   [==================================================>]
5/5: running   [==================================================>]
verify: Service converged

7.查看拓展后的进程
(1)在manager上查看服务

[vagrant@swarm-manager ~]$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
nz318g1cv6og        demo                replicated          5/5                 busybox:latest

(2)在manager查看docker进程分布

[vagrant@swarm-manager ~]$ docker service ps demo
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE             ERROR                             PORTS
u61solupo2qk        demo.1              busybox:latest      swarm-manager       Running             Running 11 minutes ago                                   
6tbxqyi4jt9b         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected 12 minutes ago   "No such image: busybox:latest"
vw1yafpwdimu         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected 12 minutes ago   "No such image: busybox:latest"
v38915xn6m5v         \_ demo.1          busybox:latest      swarm-worker1       Shutdown            Rejected 12 minutes ago   "No such image: busybox:latest"
bvlz225c22gh         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Shutdown 12 minutes ago                                  
v9aswjzf7cab        demo.2              busybox:latest      swarm-manager       Running             Running 2 minutes ago                                    
r4w747bti3lv        demo.3              busybox:latest      swarm-worker2       Running             Running 2 minutes ago                                    
veneqbhcoee7        demo.4              busybox:latest      swarm-worker1       Running             Running 2 minutes ago                                    
0qydv39dfets        demo.5              busybox:latest      swarm-worker1       Running             Running 2 minutes ago                                    

(3)分别在worker1和worker2上查看进程服务

-》Worker1
[vagrant@swarm-worker1 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9004003cba04        busybox:latest      "sh -c 'while true;d…"   5 minutes ago       Up 5 minutes                            demo.4.veneqbhcoee7fzwikrjhe0ik8
a0bbba62f54a        busybox:latest      "sh -c 'while true;d…"   5 minutes ago       Up 5 minutes                            demo.5.0qydv39dfetsykisf8aexujxq

-》Worker2
[vagrant@swarm-worker2 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
76fb752d5e63        busybox:latest      "sh -c 'while true;d…"   4 minutes ago       Up 4 minutes                            demo.3.r4w747bti3lvl7h8shxdjy7ch

三、    在swarm-worker1中删除一个

1.    查看进程

[vagrant@swarm-worker1 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9004003cba04        busybox:latest      "sh -c 'while true;d…"   About an hour ago   Up About an hour                        demo.4.veneqbhcoee7fzwikrjhe0ik8
a0bbba62f54a        busybox:latest      "sh -c 'while true;d…"   About an hour ago   Up About an hour                        demo.5.0qydv39dfetsykisf8aexujxq

2.    删除:

 [vagrant@swarm-worker1 ~]$ docker rm -f 9004003cba04
9004003cba04

3.    在manager管理节点查看进程
然后在manager管理节点上查看,本来5个ready,变成4个,后续又会自己在一个节点上启动一个。集群可以保证,一定5个有效

[vagrant@swarm-manager ~]$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
nz318g1cv6og        demo                replicated          5/5                 busybox:latest

4.    使用docker ps demo查看具体节点分布

 [vagrant@swarm-manager ~]$ docker service ps demo
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                ERROR                             PORTS
u61solupo2qk        demo.1              busybox:latest      swarm-manager       Running             Running about an hour ago      
6tbxqyi4jt9b         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected about an hour ago   "No such image: busybox:latest"
vw1yafpwdimu         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Rejected about an hour ago   "No such image: busybox:latest"
v38915xn6m5v         \_ demo.1          busybox:latest      swarm-worker1       Shutdown            Rejected about an hour ago   "No such image: busybox:latest"
bvlz225c22gh         \_ demo.1          busybox:latest      swarm-manager       Shutdown            Shutdown about an hour ago     
v9aswjzf7cab        demo.2              busybox:latest      swarm-manager       Running             Running about an hour ago      
r4w747bti3lv        demo.3              busybox:latest      swarm-worker2       Running             Running about an hour ago      
9oc2sruavnvc        demo.4              busybox:latest      swarm-worker2       Running             Running 28 seconds ago         
veneqbhcoee7         \_ demo.4          busybox:latest      swarm-worker1       Shutdown            Failed 38 seconds ago        "task: non-zero exit (137)"
0qydv39dfets        demo.5              busybox:latest      swarm-worker1       Running             Running about an hour ago      

四、    manager删除service

1.    在manager管理节点操作删除服务

[vagrant@swarm-manager ~]$ docker service rm demo
\demo
[vagrant@swarm-manager ~]$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS

2.检查worker1和worker2节点docker进程,都已经关闭

-》worker1
[vagrant@swarm-worker1 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

-》worker2
[vagrant@swarm-worker2 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES


 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值