Docker中swarm管理工具

Docker中swarm管理工具

1 安装swarm

swarm是Docker自带的容器集群管理工具。

1.1 集群IP

主机名ip地址网卡名软件
master192.168.108.201ens33Docker
node1192.168.108.202ens33Docker

修改主机名

# 管理节点,修改主机名
hostnamectl set-hostname master# 子节点,修改主机名
hostnamectl set-hostname node1# 查看主机名
hostname

1.2 master节点

# 初始化Manager节点的swarm
docker swarm init --advertise-addr 192.168.108.201# 返回值
Swarm initialized: current node (7jq3yqkt84eoivhnuiubz850m) is now a manager.To add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-09b9ti7lmz8bkuzfqy3hqra9g0vrczxkjfynwmrtroy9b4rv47-321reydmf5huvndx4ung11d69 192.168.108.201:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

1.3 node1节点

# 将node1节点加入集群
docker swarm join --token SWMTKN-1-09b9ti7lmz8bkuzfqy3hqra9g0vrczxkjfynwmrtroy9b4rv47-321reydmf5huvndx4ung11d69 192.168.108.201:2377

2 Swarm常用命令

2.1 查看节点Token

# 查看工作节点的 token
docker swarm join-token worker# 查看管理节点的 token
docker swarm join-token manager

2.2 查看集群节点状态

# 查看集群
docker node ls# 返回值
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
7jq3yqkt84eoivhnuiubz850m *   master              Ready               Active              Leader              18.09.6
wt3u2sue87bawx6iytkckvqg0     node1               Ready               Active                                  18.09.6

2.2 管理节点

# 查看node1节点详情
docker node inspect node1# 将node1节点升级,由工作节点升级为管理节点,node1的MANAGER STATUS变为Reachable
docker node promote node1# 将node1节点降级,由管理节点降级为工作节点
docker node demote node1# 更新node1节点
docker node update node1# 查看当前节点中任务
docker node ps# 删除node1节点(-f强制删除)
docker node rm node1

2.3 服务管理

1 创建服务

# 在两个节点上获取镜像
docker pull nginx:1.20.0# 创建3个nginx服务,swarm会自动将容器分配到不同的宿主机上
docker service create --replicas 3 -p 80:80 --name nginx nginx:1.20.0

2 查看服务

# 查看服务
docker service ls# 查看当前节点中任务
docker node ps# 查看服务日志
docker service logs nginx# 查看服务的详情
docker service inspect nginx

3 服务扩容与缩减

# 扩容
docker service scale nginx=5# 缩减
docker service scale nginx=2

4 删除服务

docker service rm nginx

3 使用overlay网络实现容器跨宿主机互联

推荐使用swarm集群服务,此方法不够灵活,容器被固定在了不同的宿主机中。

3.1 创建overlay网络

# 注意必须添加--attachable参数,否则会报如下错误: docker: Error response from daemon: Could not attach to network overlay-cluster: rpc error: code = PermissionDenied desc = network overlay-cluster not manually attachable.# --attachable: 表示可以手动挂载容器
docker network create --driver overlay overlay-cluster --attachable

3.2 创建容器

在不同的宿主机上创建alpine容器

# 在master节点上创建容器
docker run -itd --rm --name alpine-master --net overlay-cluster alpine:3.13.0 /bin/sh# 在node1节点上创建容器
docker run -itd --rm --name alpine-node1 --net overlay-cluster alpine:3.13.0 /bin/sh

3.3 不同宿主机的容器的通信

# 进入master节点上的容器
docker exec -it alpine-master /bin/sh# ping node1上的alpine-node1
ping alpine-node1

在这里插入图片描述

4 Docker Stack大规模部署管理

Docker Stack解决大规模部署管理问题,Docker引擎在1.12 版本集成了Docker Swarm, 内置新的容器编排工具docker stack,通过提供期望状态、滚动升级、简单易用、扩缩容、健康检查等特性简化了应用的管理。

4.1 使用docker-compose创建应用

docker-compose.yml

version: "3.7"
services:mysql:image: nginx:1.20.0hostname: nginxnetworks:- overlayports:- 80:80deploy:mode: replicatedreplicas: 3networks:overlay:

4.2 常用命令Docker Stack

部署docker-compose文件

# 部署新stack或更新现有stack
# -c 参数指定 compose文件
# stack的名称 nginx-stack
docker stack deploy -c docker-compose.yml nginx-stack# 返回值
Creating network nginx-stack_overlay
Creating service nginx-stack_mysql# 此时可以访问80端口的nginx服务
http://192.168.108.201/

nginx截图

在这里插入图片描述

查看stack信息

# 显示stack列表
docker stack ls	
# 返回值
NAME                SERVICES            ORCHESTRATOR
nginx-stack         1                   Swarm# 列出stack中的任务
docker stack ps nginx-stack
# 返回值
ID                  NAME                  IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
er6ak0dt6zvi        nginx-stack_mysql.1   nginx:1.20.0        master              Running             Running 2 minutes ago                       
uriohm4ew1gx        nginx-stack_mysql.2   nginx:1.20.0        node1               Running             Running 2 minutes ago                       
fkkqo4dchban        nginx-stack_mysql.3   nginx:1.20.0        node1               Running             Running 2 minutes ago  # 列出stack中的服务
docker stack services nginx-stack
# 返回值
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
lasx9zcszyvy        nginx-stack_mysql   replicated          3/3                 nginx:1.20.0        *:80->80/tcp# 删除stack
docker stack rm nginx-stack
# 返回值
Removing service nginx-stack_mysql
Removing network nginx-stack_overlay
Removing network nginx-stack_nginx-net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/328959.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理想L9自动驾驶域控制器拆解

理想L9自动驾驶域控制器拆解 目录 理想L9自动驾驶域控制器拆解简介:1、SOC-Orin2、MCU-TC3973、交换机4、GMSL解串芯片5、存储 printf("欢迎关注公众号:车载嵌入式探索者,博主建立了一个车规级开发交流群, 感兴趣的朋友可以关…

Web安全-文件上传漏洞入门看篇就够了

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、简介 任意文件上传漏洞是由于对上传文件未作过滤或过…

【深度学习:Domain Adversarial Neural Networks (DANN) 】领域对抗神经网络简介

【深度学习:Domain Adversarial Neural Networks】领域对抗神经网络简介 前言领域对抗神经网络DANN 模型架构DANN 训练流程DANN示例 GPT示例 前言 领域适应(DA)指的是当不同数据集的输入分布发生变化(这种变化通常被称为共变量变…

【Spring Cloud】关于Nacos配置管理的详解介绍

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 &am…

Linux学习记录——삼십유 传输层TCP协议(1)

文章目录 1、TCP协议报文1、报头和有效载荷的分离2、TCP可靠性3、序号和确认序号4、16位窗口大小5、6个标志位和紧急指针 2、TCP可靠性1、应答机制2、超时重传机制3、连接管理机制握手挥手 3、流量控制 1、TCP协议报文 UDP属于TCP/IP协议族。 1、报头和有效载荷的分离 从头…

Unity中Shader雾效在场景中的调节技巧

文章目录 前言一、修改棋盘格Shader的Cull可以在属性面板控制1、在属性面板定义CullMode2、在SubShader中,使用CullMode3、这样就可以在不同剔除情况下使用棋盘格场景了 二、调节天际线颜色和雾融为一体1、在摄像机设置不渲染天空盒,渲染单一颜色2、采样…

qt自定义控件的封装

刚学了一个很有意思的东西,前面学了list,Tree,Table三大控件和一部分常用基础控件,但感觉没啥意思,就是用别人的直接用,刚学了一个自定义控件的封装,流程如下: 想把两个不相关的组件封装在一块,直接用ui不行,所以先新添加了qt设计师页面,新添加了一个SmallWidget *ui 在smal…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(十)——Cibersort——完结

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

Mybatis-Plus的条件构造器QueryWrapper UpdateWrapper详解

文章目录 1. 引言2. Mybatis-Plus简介3. QueryWrapper3.1 基本用法3.2 动态条件拼接3.3 Lambda表达式的高级用法 4. UpdateWrapper4.1 基本用法4.2 动态条件拼接4.3 Lambda表达式的高级用法 5. 拓展功能与未来展望5.1 动态SQL的使用5.2 自定义条件构造器 6. 总结 🎉…

DQL命令查询数据(三)

本课目标 掌握MySQL的多表查询 SQL语句的综合应用 多表连接查询 通过各个表之间共同列的关联性(例如:外键)来查询的 分类: 内连接(INNER JOIN) ,可简写为 JOIN;左外连接(LEFT OUTER JOIN),…

VScode 画图插件

开源免费的插件 随着http://draw.io开源vs code插件之后,它一跃成为最强大的流程图工具。 目前http://draw.io支持3种文件后缀,你只需要新建3种后缀之一的文件就可以在vs code中画流程图,它们分别是: *.drawio*.dio*.drawio.sv…

docker部署simpleDocker

1,安装docker,请参考 linux安装docker 2,安装docker-compose,请参考 Docker-Compose 3,安装simpleDocker 准备docker-compose.yml文件 version: 3 services:redis:container_name: redisimage: redis:latestweb:conta…