一文读懂Docker之Docker Swarm集群部署应用服务及常用命令

目录

一、Docker Swarm集群部署应用服务

1、部署nginx服务

步骤一、创建应用服务网络

步骤二、部署Nginx服务

步骤三、查看服务是否成功创建

步骤四、查询服务信息

步骤五、查询nginxtest运行节点 

步骤六、到对应的运行节点可看到容器状态

2、扩容副本数

3、缩容副本数

4、多服务编排部署

步骤一、创建编排文件(编排附后)

步骤二、根据编排文件创建服务

步骤三、查看服务是否创建成功

步骤四、分别查看服务部署节点

步骤五、根据节点IP,分别访问

二、集群常用命令

1、Docker Swarm(集群管理命令)

(1)、创建swarm集群

(2)、worker节点加入集群

(3)、删除节点,-f参数强制删除

(4)、查看worker节点的token

(5)、查看manager节点的token

2、docker service(服务管理命令)

(1)、查看服务列表

(2)、新建服务

(3)、删除service

(4)、查看nginx_test服务详细信息

(5)、查询nginx_test服务运行节点

(6)、扩容nginx_test服务副本数为5

(7)、缩容nginx_test服务副本数为1

(8)、升级、更新镜像

(9)、查看某个服务日志

3、docker node(节点管理命令)

(1)、查看集群信息

(2)、更新worker节点状态

(3)、删除worker节点

(4)、查看节点详细信息

(5)、节点降级,由管理节点降级为工作节点

(6)、节点升级,由工作节点升级为管理节点

(7)、查看节点中的Task任务

4、docker network(网络管理命令)

(1)、创建nginxtestnet网络

(2)、查看网络是否成功创建

(3)、查看网络详细信息

5、docker volume(挂载管理命令)

(1)、创建一个volume

(2)、查看所有创建的volume

(3)、查看某一个volume详细信息

(4)、创建新的服务,并挂载nginxtestvolume

(5)、创建挂载volume服务方式二

6、docker stack(多服务部署)

(1)、部署新的堆栈或更新现有堆栈

(2)、列出现有堆栈

(3)、列出堆栈中的任务

(4)、删除堆栈

(5)、列出堆栈中的服务

(6)、移除某个堆栈(不会删除数据)


一、Docker Swarm集群部署应用服务

1、部署nginx服务

步骤一、创建应用服务网络

  • 创建nginxtestnet网络

[root@manager ~]# docker network create -d overlay nginxtestnet

5zi3i7wi0ob91nm6fix76ev56

  • 查看网络是否成功创建

[root@manager ~]# docker network ls | grep nginxtestnet

5zi3i7wi0ob9 nginxtestnet overlay swarm

步骤二、部署Nginx服务

--replicas:指定副本数

--network:指定服务使用的网络

--name:指定应用名称

-p:指定映射到worker主机8082端口

nginx:指镜像,此处拉取最新镜像

[root@manager ~]# docker service create --replicas 1 --network nginxtestnet --name nginx_test -p 8082:80 nginx

rikgegyi7ib5gxqlwupwnutpo

overall progress: 1 out of 1 tasks

1/1: running [==================================================>]

verify: Service converged

步骤三、查看服务是否成功创建

[root@manager ~]# docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp

步骤四、查询服务信息

--pretty 使命令输出格式化为可读的格式

[root@manager ~]# docker service inspect --pretty nginx_test

步骤五、查询nginxtest运行节点 

[root@manager ~]# docker service ps nginxtest

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS

lywqrgljuhfo nginx_test.1 nginx:latest manager Running Running 8 minutes ago

可以看到nginx_test服务运行在manager节点,所以访问http://192.168.110.50:8082/,即可访问到这个容器服务。运行在哪个节点,就用节点IP+8082端口访问

步骤六、到对应的运行节点可看到容器状态

[root@manager ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

ae7c0bb731ff nginx:latest "/docker-entrypoint.…" 43 minutes ago Up 43 minutes 80/tcp nginx_test.1.lywqrgljuhfoe89lfbgftr2u9

2、扩容副本数

  • 查看nginx_test服务当前副本数

可见副本数为1

[root@manager ~]# docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp

  • 扩充nginx_test服务副本数为5个

方式一:

[root@manager ~]# docker service scale nginx_test=5

nginx_test 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

方式二:

[root@manager ~]# docker service update --replicas 5 nginx_test

nginx_test

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

  • 可见副本数已经扩充为5个

[root@manager ~]# docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

rikgegyi7ib5 nginx_test replicated 5/5 nginx:latest *:8082->80/tcp

3、缩容副本数

  • 查看nginx_test服务当前副本数

可见副本数为5

[root@manager ~]# docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

rikgegyi7ib5 nginx_test replicated 5/5 nginx:latest *:8082->80/tcp

  • 缩容nginx_test服务副本数为1个

方式一:

[root@manager ~]# docker service scale nginx_test=1

nginx_test scaled to 1

overall progress: 1 out of 1 tasks 

1/1: No such image: nginx:latest@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f… 

verify: Service converged

方式二:

[root@manager ~]# docker service update --replicas 1 nginx_test

nginx_test

overall progress: 1 out of 1 tasks 

1/1: No such image: nginx:latest@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f… 

verify: Service converged

  • 可见副本数已经缩容为1个

[root@manager ~]# docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp

4、多服务编排部署

部署集群GUI管理服务(Web方式管理集群)

步骤一、创建编排文件(编排附后)

[root@manager data]# mkdir -p /data/testSwarm

[root@manager data]# cd /data/testSwarm/

[root@manager testSwarm]# vim multi-service-compose.yml

步骤二、根据编排文件创建服务

[root@manager testSwarm]# docker stack deploy -c multi-service-compose.yml multi_service

Creating network multiservicedefault

Creating service multiservicenginx

Creating service multiservicevisualizer

Creating service multiserviceportainer

步骤三、查看服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值