[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法

本文由Markdown语法编辑器编辑完成。

1. 需求背景:

最近在启动一个服务时,突然发现它的一个接口,被另一个服务ip频繁的请求。
按理说,之前设置的是,每隔1分钟请求一次接口。但从日志来看,则是1秒钟请求一次,明显是不太正常的。
但是,我需要定位一下,这个ip对应的是哪个服务,因为有可能有多个服务,来请求这个接口。

因此,需求的背景就是,如何根据docker服务日志中展示的ip, 快速地查找出,它是docker-compose.yml中的哪个服务。
在这里插入图片描述

2. 解决方案:

2.1 docker inspect

如果一个docker-compose.yml里面的服务数量比较少,我们是可以通过 docker inspect的指令,来查看某个服务被分配的ip地址是多少的。

这里举一个简单的例子,假设我有一个容器的名称, container-abc, 那么我如果想知道它在启动状态下分配的ipv4的地址,可以输入以下指令:

docker inspect {your-container-name} |grep -i ip

这样就可以查看到这个容器对应的服务的ip地址了。
如下示例:
在这里插入图片描述
可以看到,在截图中,
serverIP, 是宿主机的ip地址;
而IPAddress, 就是这个容器,在docker内部的ip地址。
docker-compose.yml中的服务之间,相互调用接口,就是通过这个ip来访问的。

2.2 组合docker的指令

第一种方法,仅限于当docker里面的服务数量较少时,可以使用。但是如果服务较多,肯定不是很现实。于是咨询了一下豆包,她给出了我一些建议。

在这里插入图片描述
通过将豆包给出的shell脚本,创建一个shell文件,比如:

touch docker-ip.sh
vim docker-ip.sh
# 获取容器 ID 列表
container_ids=$(docker-compose ps -q)# 循环处理每个容器 ID
for container_id in $container_ids; do# 获取容器对应的服务名(通过解析容器名称来获取,容器名称包含服务名相关信息)service_name=$(docker inspect --format='{{.Name}}' $container_id | sed 's/^\///')# 获取容器的 IP 地址ip_address=$(docker inspect --format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container_id)echo "服务名: $service_name,IP 地址: $ip_address"
done

将上述脚本写入 docker-ip.sh文件后,再次运行:

bash docker-ip.sh

就可以看到如下面的截图了,这里会显示每个服务对应的容器的名称,以及容器被分配的ip地址。

在这里插入图片描述

(完)

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

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

相关文章

JDK、MAVEN与IDEA的安装与配置

1.认识JDK、MAVEN与IDEA JDK 提供了编译和运行Java程序的基本环境。Maven 帮助管理项目的构建和依赖。IDEA 提供了一个强大的开发环境,使得编写、调试和运行Java程序更加高效。 2. 安装与环境配置 2.1 官网地址 选择你需要的版本下载: MAVEN下载传送…

C++标准模板库 -- map和set

序列式容器和关联式容器 在本篇文章之前,我们已经接触了STL中的部分容器:如string、vector、list、deque、array、forward_list等,这些容器被统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值一般…

【Xbim+C#】创建圆盘扫掠IfcSweptDiskSolid

基础回顾 https://blog.csdn.net/liqian_ken/article/details/143867404 https://blog.csdn.net/liqian_ken/article/details/114851319 效果图 代码示例 在前文基础上,增加一个工具方法: public static IfcProductDefinitionShape CreateDiskSolidSha…

Flutter踩坑记录(三)-- 更改入口执行文件

我们在flutter 中可能不习惯默认的lib/main.dart 作为入口文件,会修改成index.dart 或者修改main.dart的位置, 用Andorid studio开发 如果我们用Andorid studio开发,默认修改一下配置地址 运行项目即可。 用VSCode开发 如果我们使用VSCode开发&…

AbsPlus框架介绍2

ABSPlus框架以其集成的多功能性在市场上脱颖而出。它不仅提供美观且符合主流风格的页面设计,还支持灵活的流程配置,包括算法处理流程和页面审批流程。在众多业务系统中,流程管理往往是核心且复杂的挑战,涉及数据库设计、页面开发以…

算法.图论-习题全集(Updating)

文章目录 本节设置的意义并查集篇并查集简介以及常见技巧并查集板子(洛谷)情侣牵手问题相似的字符串组岛屿数量(并查集做法)省份数量移除最多的同行或同列石头最大的人工岛找出知晓秘密的所有专家 建图及其拓扑排序篇链式前向星建图板子课程表 本节设置的意义 主要就是为了复习…

使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像

文章目录 应用快速部署NginxRedisMySQLTomcat 制作镜像镜像原理基于已有容器创建使用 Dockerfile 创建镜像指令说明构建应用创建 Dockerfile 文件创建镜像 应用快速部署 Nginx docker run -d -p 80:80 nginx使用浏览器访问虚拟机地址 Redis docker pull redis docker run --…

图像处理 之 凸包和最小外围轮廓生成

“ 最小包围轮廓之美” 一起来欣赏图形之美~ 1.原始图片 男人牵着机器狗 2.轮廓提取 轮廓提取 3.最小包围轮廓 最小包围轮廓 4.凸包 凸包 5.凸包和最小包围轮廓的合照 凸包和最小包围轮廓的合照 上述图片中凸包、最小外围轮廓效果为作者实现算法生成。 图形几何之美系列&#…

Nuxt.js 应用中的 webpack:configResolved事件钩子

title: Nuxt.js 应用中的 webpack:configResolved事件钩子 date: 2024/11/21 updated: 2024/11/21 author: cmdragon excerpt: 在 Nuxt.js 项目中,webpack:configResolved 钩子允许开发者在 Webpack 配置被解析后读取和修改该配置。这一钩子在所有 Webpack 配置被合并和确…

java-贪心算法

1. 霍夫曼编码(Huffman Coding) 描述: 霍夫曼编码是一种使用变长编码表对数据进行编码的算法,由David A. Huffman在1952年发明。它是一种贪心算法,用于数据压缩。霍夫曼编码通过构建一个二叉树(霍夫曼树&a…

推荐一款专业电脑护眼工具:CareUEyes Pro

CareUEyes Pro是一款非常好用的专业电脑护眼工具,软件小巧,界面简单,它可以自动过滤电脑屏幕的蓝光,让屏幕显示更加的不伤眼,更加舒适,有效保护你的眼睛,可以自定义调节屏幕的色调,从…

记录一下在原有的接口中增加文件上传☞@RequestPart

首先,咱声明一下: RequestBody和 MultipartFile 不可以 同时使用!!! 因为这两者预期的请求内容类型不同。RequestBody 预期请求的 Content-Type 是 application/json 或 application/xml,而 MultipartFile …

国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程

在当今数字化、网络化的视频监控领域,大中型项目对于视频监控管理平台的需求日益增长,特别是在跨区域、多设备、高并发的复杂环境中。EasyCVR视频监控汇聚管理平台正是为了满足这些需求而设计的,它不仅提供了全面的管理功能,还支持…

JavaSrcipt 函数高级

一 原型与原型链 prototype 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象或者显示原型) 原型对象prototype中有一个属性constructor, 它指向函数对象 function a(){}console.log(typeof a,typeof Date)console.log(a.prototype, Date.prot…

蓝桥杯每日真题 - 第17天

题目:(最大数字) 题目描述(13届 C&C B组D题) 题目分析: 操作规则: 1号操作:将数字加1(如果该数字为9,变为0)。 2号操作:将数字…

sysbench压测DM的高可用切换测试

一、配置集群 1. 配置svc.conf [rootlocalhost dm]# cat /etc/dm_svc.conf TIME_ZONE(480) LANGUAGE(CN)DM(192.168.112.139:5236,192.168.112.140:5236) [DM] LOGIN_MODE(1) SWITCH_TIME(300) SWITCH_INTERVAL(200)二、编译sysbench 2.1 配置环境变量 [dmdba~]# vi ~/.bas…

解决vue-pdf的签章不显示问题

在使用vue-pdf 4.3.0时发现上传一般的普通pdf正常预览,但是上传带有红头文件的和和特殊字体的pdf无法正常内容显示,文字丢失问题。 1、查看控制台报错信息 2、缺少字体原因 getNumPages(url) {var loadingTask pdf.createLoadingTask({url: url,//引入…

免费开源!DBdoctor推出开源版系统诊断工具systool

​前言 在开发和运维过程中,经常会遇到难以定位的应用问题,我们通常需要借助Linux系统资源监控工具来辅助诊断。然而,系统的IO、网络、CPU使用率以及文件句柄等信息通常需要通过多个独立的命令工具来获取。在没有部署如Prometheus这样的综合…

Redis基本的全局命令

在学习redis基本的全局命令之前呢,我们必须先进入redis-cli客户端才行。 如图: get和set get和set是redis两个最核心的命令。 get:根据key来获取value。 set:把key和value存储进去。 如set命令如图: 对于上述图中&…

招商蛇口|在低密园林里,开启生活的“任意门”

“最好的建筑是这样的,我们深处在其中,却不知道自然在哪里终了,艺术在哪里开始。” 凭借深耕西安10载的城市远见,以及建立在成功人居经验之上的敏锐洞察,招商蛇口将林语堂名言里的生活,变成了现实。 都市化越是加速&…