一、 实现功能
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