1. swarm 集群

1. 集群创建
#  创建集群管理节点,  --advertise-addr  指定节点管理通信地址,--data-path-addr 指定容器通信地址
docker swarm init --advertise-addr 1.14.138.35 --data-path-addr 1.14.138.35#  --advertise-addr  指明当前work节点的通信地址,如果当前集群机器是内网的话,各个机器之间可以直接进行通信的话,就不需要
#  如果当前服务器集群不是在内网中的话就需要指明,否则,work节点加入集群的时候是按照eth0网卡的ip地址进行加入,这样就无法进行通信
docker swarm join --token SWMTKN-1--aqjja2f6n8uilutv5udr0gq4e 1.14.138.35:2377  --advertise-addr 120.78.30.163
2. 集群网络创建
# --driver 网络类型,默认有 overlay、bridge、host 三种,overlay 是docker swarm 中的默认网络驱动,
# 可以让各个节点中的容器进行跨主机、跨容器进行网络通信,还可以使用容器名称进行dns服务发现等功能
# --attachable  配置网络名称,想要容器进行跨主机、跨容器进行网络通信的话,在启动容器的时候需要指明适应的网络,
# 一个容器可以使用多个网络驱动
docker network create --driver overlay --attachable base_service_database-net # 查看 docker 网络列表
docker network ls

2 集群config配置

在docker swarm 集群中,当集群内的容器需要额外自定义的配置文件的时候,并且这个容器是global 全局运行的,每当加入一个work 节点的时候,想要自动给它配置的话,就可以使用config 进行配置管理,在管理节点上创建配置文件,然后将这个配置文件添加到集群中即可

1. filebeat.yml
filebeat.inputs:
- type: filestreamenabled: truepaths:- /data/logs/*/*.logparsers:- multiline:type: patternpattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}'negate: truematch: aftermax_lines: 500timeout: 10sprocessors:- dissect:tokenizer: "%{log_timestamp} | %{log_level} | %{namespace} | %{file_path} | %{method} | %{track_id} | %{message}"field: "message"max_lines: 500target_prefix: ""overwrite_keys: true- timestamp:field: log_timestamplayouts:- '2006-01-02 15:04:05.000'test:- '2025-04-14 09:16:52.758'- drop_fields:fields: ["log_timestamp"]output.elasticsearch:hosts: ["http://elasticsearch:9200"]index: "caipu_srv-logs-%{+yyyy.MM.dd}"indices:- index: "caipu_srv-logs-%{+yyyy.MM.dd}"when.contains:tags: "xixi"pipeline: "xixi_processor"setup.template.enabled: false
setup.template.name: "caipu_srv"
setup.template.pattern: "caipu_srv-*"
2. 创建配置
docker config create filebeat-config  /data/docker/filebeat/config/filebeat.yml
3. 使用docker配置文件
version: '3.8'networks:base_service_database-net:external: trueservices:filebeat:container_name: filebeatimage: elastic/filebeat:7.17.7restart: alwaysnetworks:- base_service_database-netdeploy:mode: globalconfigs:- source: filebeat-configtarget: /usr/share/filebeat/filebeat.yml  # 配置文件挂载路径volumes:- type: bindsource: /data/logs/target: /data/logs/- type: bindsource: /var/run/docker.socktarget: /var/run/docker.sock- type: bindsource: /var/lib/docker/containerstarget: /var/lib/docker/containersread_only: trueconfigs:filebeat-config:file: /data/docker/filebeat/config/filebeat.yml  # 使用本地的 filebeat.yml 文件

3 集群堆栈服务

1. 启动堆栈服务
# 可以通过配置文件批量启动服务,类似docker-compose 效果,
# 在docker swarm中,可以根据配置文件中的配置将容器分发给其他的work节点进行启动服务
docker stack deploy -c filebeat.yml filebeat
2. 查看当前服务列表
docker service ls
3. 删除所有服务
docker service ls -q | xargs -r docker service rm
4. 查看服务日志
docker service logs 服务名称/服务id
5.查看当前堆栈列表
docker stack ls
6. 查看堆栈信息
docker stack ps 堆栈名称

有时候有些容器无法启动的时候,使用 docker service logs 堆栈名称 是无法看到容器启动异常报错信息的,这种情况下可以使用docker stack ps 堆栈名称 查看容器状态信息,但是这种情况下容器状态信息是被省略展示的,erro 有时候展示的不全面,这种情况下,可以使用 docker stack ps --no-trunc 堆栈名称, 加 --no-trunc 参数,不省略展示堆栈信息

4 其他

1. 查看容器基本信息
# 查看当前容器列表
docker ps -a# 查看当前容器基本信息,如 pid,network等基本信息
docker inspect 容器id
2. 宿主机进入容器网络

有时候镜像没有指定的命令,比如 没有ping curl等命令的时候,但是又想要检查测试容器网络状态,这种情况下,可以使用 nsenter命令进入容器网络命名空间,这样就可以在不进入容器的情况下,在宿主机上使用宿主机的命令发起容器的网络请求

 nsenter -n -t `docker inspect -f '{{.State.Pid}}' 容器id `

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

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

相关文章

KRaft 角色状态设计模式:从状态理解 Raft

这些状态类是 Raft 协议行为的核心载体。它们包含转移逻辑 和 节点在特定状态下的所有行为和数据。QuorumState它是 KRaft 客户端实现中状态管理的核心,扮演着“状态机上下文(Context)”和“状态转换协调者”的关键角色。QuorumState 是整个 …

Linux的磁盘存储管理实操——(上)

一、Linux的设备文件分类 Linux的设备文件分类1、在Linux系统中设备文件是用来与外接交互的接口,它将内核中的硬件设备与文件系统关联起来,让用户可以像操作普通文件一样来操作硬件设备,同时也为开发者提供了方便而强大的应用程序接口。 2、L…

内核bpf的实现原理

bpftrace能帮我们干什么?1、统计 tcp连接的生命时长、2、统计mysql执行一条sql语句的时间3、统计redis执行命令的时间、 4、对文件进行一次读或者写的时间。 常用命令: bpftrace -e Begin { printf("hello\n"); } bpftrace -l *enter_accep…

前端npm配置Nexus为基础仓库

步骤: 一、Nexus仓库配置 新增npm仓库,具体详解见 Nexus私有仓库配置,解释 注:Nexus的版本需要至少3.38以上,不然会出现npm install 时npm的审计功能报错,导致install失败。虽然在3.38以后不会报400错误&#xff0c…

数据结构 之 【排序】(直接插入排序、希尔排序)

目录 1.直接插入排序 1.1直接插入排序的思想 1.2直接插入排序的代码逻辑: 1.3 直接插入排序图解 1.4单趟排序代码(单个元素的排序逻辑) 1.5完整排序代码 1.6直接插入排序的时间复杂度与空间复杂度 1.7直接插入排序的优势 2.希尔排序(缩小增量排序) 2.1…

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙一顿操作猛如虎,一看结果250,必须记录,必须记录,!今天弄了很久关于我们2023年的产品系统蜻蜓T会议系统专业版,然后终于搞好了密码也重…

Newline全场景方案闪耀2025中国智慧生活大会

7月15日 — 16日,由中国电子视像行业协会等权威机构指导的2025 CIC中国智慧生活大会在京召开。Newline作为视像协会PID分会副会长单位携全场景智慧办公解决方案亮相,首席营销官李宇鹏受邀出席领袖圆桌环节,与腾讯云、京东方、创维、TCL、小猿…

Edge浏览器地址栏默认搜索引擎设置指南

前言 Microsoft Edge 浏览器允许用户自定义地址栏默认搜索引擎,只是设置入口隐藏比较深,以版本 137.0.3296.83 (正式版本) (64 位)为例详细记录设置地址栏默认搜索引擎步骤: Edge 设置默认搜索引擎步骤 通过设置界面修改 打开Edge设置&#x…

Python eval函数详解 - 用法、风险与安全替代方案

Python eval函数详解 - 用法、风险与安全替代方案在Python中,eval() 是一个内置函数,用于解析并执行传入的字符串形式的表达式。它能够将字符串动态地转换为有效的Python代码并运行。虽然 eval() 功能强大,但其使用也伴随着潜在的安全风险。本…

Webpack5 新特性与详细配置指南

一、Webpack5 新特性 内置 Asset Modules(资源模块) 替代 file-loader、url-loader、raw-loader 等,统一资源处理方式。四种类型:asset/resource:导出文件 URL(等同 file-loader)。asset/inli…

笼子在寻找一只鸟:解读生活的隐形陷阱

想象一个闪闪发光的笼子,敞开着门,在世界中游荡,寻找一只鸟儿。这画面是不是有点奇怪?这是卡夫卡的格言“一个笼子在寻找一只鸟”带给我们的奇思妙想。通常,鸟儿自由翱翔,笼子静静等待,但卡夫卡…

低空经济展 | 约克科技携小型化测试设备亮相2025深圳eVTOL展

全球低空经济与eVTOL产业盛会——2025深圳eVTOL展,将于2025年9月23日至25日在深圳坪山燕子湖国际会展中心盛大启幕! 本届展会以“低空经济eVTOL航空应急救援商载大型无人运输机”为核心,预计汇聚200位发言嘉宾、500家顶尖展商及15,000位专业观…

数学专业转行做大数据容易吗?需要补什么?

高考志愿选择数学专业是一个面向未来的决定。数学作为基础学科,其严谨的逻辑训练和抽象思维能力培养,为后续专业发展提供了广泛的可能性。在数字化时代背景下,数学专业毕业生在数据科学、人工智能等领域的竞争优势明显。大学期间推荐考CDA数据…

物联网系统中-设备管理定义方法

物联网系统中的设备管理是指对联网物理设备进行全生命周期监控、配置、维护和优化的系统性过程。它涵盖了从设备接入到退役的各个环节,是物联网平台的核心能力,确保设备安全、稳定、高效地运行并产生价值。 以下是设备管理的详细定义与核心组成部分&…

java和ptyhon对比

📝 ​1. 语言特性对比​​维度​​Java​​Python​​语法风格​静态类型,需显式声明变量类型;代码冗长(需分号、大括号)动态类型,变量类型自动推断;简洁(缩进代替大括号&#xff0c…

UI测试解决方案TestComplete:助力小团队端到端测试全覆盖

面对软件多平台部署的复杂环境与有限的人力资源,小团队在追求端到端测试覆盖时常常陷入困境:既要确保应用在Windows、macOS、Linux及iOS、Android等碎片化平台上的稳定兼容,又要应对脚本重复编写耗时费力、测试效率低下的挑战,同时…

【Android】事件、绘制坐标系相关

一,事件坐标系即MotionEvent事件下发的坐标系,其坐标轴如下MotionEvent#offsetLocation方法可调整坐标原点,以影响MotionEvent#getX,MotionEvent#getY值,以匹配子View的坐标参考系,进而进行事件处理。注意&…

本地Linux服务器使用Docker快速部署SyncTV

文章目录前言1. Docker部署2. 简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址前言 当想和异地恋人同步看恐怖片却因网络延迟错过惊悚瞬间,或与朋友组队观看电竞直播时无法实时吐槽…这些尴尬场景或许你都经历过。而SyncTV的存在正是为了解决…

搭建比分网服务器怎么选数据不会卡顿?

一、 体育比分网站的独特技术挑战体育比分网站是互联网服务中的"极限运动",面临三大技术高峰:数据实时性:NBA最后2分钟的比分延迟超过1秒就会流失用户流量脉冲:欧冠决赛时流量可能是平时的50-100倍全球覆盖:…

7月18日总结

bashupload / upload files from command line 远程文件包含 介绍一个上传文件的网站 bashupload.com 简介 借助bashupload.com,可以简朴地从下令行上传文件,剖析给其他的服务器,桌面和移动装备,最大支持25G。上传的文件会被保留…