快速得到容器ID和veth bridge interface的关系
方法:使用脚本
get_network_mode() {docker inspect --format='{{.HostConfig.NetworkMode}}' "$1"
}created_by_kubelet() {[[ $(docker inspect --format='{{.Name}}' "$1") =~ ^/k8s_ ]]
}for container_id in $(docker ps -q); donetwork_mode=$(get_network_mode "${container_id}")# skip the containers whose network_mode is 'host' or 'none',# but do NOT skip the container created by kubelet.if [[ "${network_mode}" == "host" || \$(! created_by_kubelet "${container_id}") && "${network_mode}" == "none" ]]; thenecho "${container_id} => ${network_mode}"continuefi# if one container's network_mode is 'other container',# then get its root parent container's network_mode.while grep container <<< "${network_mode}" -q; donetwork_mode=$(get_network_mode "${network_mode/container:/}")# skip the containers whose network_mode is 'host' or 'none',# but do NOT skip the container created by kubelet.if [[ "${network_mode}" == "host" || \$(! created_by_kubelet "${container_id}") && "${network_mode}" == "none" ]]; thenecho "${container_id} => ${network_mode}"continue 2fidone# get current container's 'container_id'.pid=$(docker inspect --format='{{.State.Pid}}' "${container_id}")# get the 'id' of veth device in the container.veth_id=$(nsenter -t "${pid}" -n ip link show eth0 |grep -oP '(?<=eth0@if)\d+(?=:)')# get the 'name' of veth device in the 'docker0' bridge (or other name),# which is the peer of veth device in the container.veth_name=$(ip link show |sed -nr "s/^${veth_id}: *([^ ]*)@if.*/\1/p")echo "${container_id} => ${veth_name}"
done
步骤:
- 保存脚本为.sh文件。
touch docker_eth_pair.sh
vim docker_eth_pair.sh
- 给脚本赋予权限。
chmod +x docker_eth_pair.sh
- 执行脚本。
./docker_eth_pair.sh
执行结果:
可以看到容器ID和veth的关系。
参考资料来源:https://stackoverflow.com/questions/21724225/docker-how-to-get-veth-bridge-interface-pair-easily
快速得到容器ID和veth bridge interface的关系相关推荐
- 查看容器ID以及如何在docker和宿主机之间复制文件
docker ps -a 查看正在运行的容器 docker ps -a | grep [容器名] 根据容器名查询容器ID 进入容器:docker exec -it [容器ID] /bin/sh ...
- 通过Docker进程pid获取容器id
虽然Docker是通过namespace隔离技术实现容器间进程的隔离,但在运行Docker的主机中,Docker容器内的进程与主机内运行的进程是在同一个namespace(假设叫A)的.虽然在Dock ...
- VM虚拟机 - Docker - CentOS 7 - 快速使用Docker从零搭建Hadoop完全分布式集群详细教程(亲测有效,※吐血推荐※)(内含快速启动容器脚本)
目录 阅读须知 最小安装(可跳) 安装VMware Tool(可直接安装) 关闭防火墙和Selinux 安装docker 迁移docker安装目录 docker安装CentOS 7 安装必要工具 安装 ...
- 5种快速查找容器文件系统中文件的方法
5种快速查找容器文件系统中文件的方法 如果你经常使用容器,那么你很有可能希望在某个时刻查看正在运行的容器的文件系统.也许容器无法正常运行,你想读取一些日志,也许你想检查容器内部的一些配置文件-或者,你 ...
- win7下查看计算机ID,win7系统快速查看硬件ID的操作方法
很多小伙伴都遇到过对win7系统快速查看硬件ID进行设置的困惑吧,一些朋友看过网上对win7系统快速查看硬件ID设置的零散处理方法,并没有完完全全明白win7系统快速查看硬件ID是如何设置的,今天小编 ...
- 微服务、容器、DevOps三者之间的演进关系,你清楚吗?
微服务.容器.DevOps三者之间的演进关系 容器的普及,带来了微服务架构和DevOps的高速发展. 1 微服务的弊端 1.1 测试.发布工作量剧增 单体应用拆分成多个微服务后,虽能实现快速开发迭代, ...
- docker中容器与宿主机之间的网络关系
接上一篇jupter远程访问 docker中容器与宿主机之间的网络关系 一.PC上的网络关系 1.网卡的物理地址 网卡的物理地址(MAC地址):是网卡的唯一标识.由生产厂商写入网卡中.MAC地址就如同 ...
- 开发者如何快速精简容器云镜像?| 技术头条
戳蓝字"CSDN云计算"关注我们哦! 作者:阿木 接触过容器云或者用过容器的同学一般都会遇到容器镜像占用空间很大的问题,遇到此类问题的时候大部分同学可能更加习惯于为容器的镜像仓库增 ...
- 镜像与复制有什么区别_开发者如何快速精简容器云镜像?| 技术头条
戳蓝字"CSDN云计算"关注我们哦! 作者:阿木 接触过容器云或者用过容器的同学一般都会遇到容器镜像占用空间很大的问题,遇到此类问题的时候大部分同学可能更加习惯于为容器的镜像仓库增 ...
- 快速获取容器VIPs,解决集群自动化测试难题
出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五晚6点10分 与您不见不散 说在前面 要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs .我一直在 ...
最新文章
- 【Sql Server】Database-sql语言的流程控制语句
- SWT事件的四种写法
- 网站单页面SEO关键词该如何布局更好?
- dtree.js树的使用
- php图片去噪,python 图片去噪的方法示例
- Active Directory的复制拓扑,Active Directory系列之八
- 使用泛型创建只读集合
- 【robot framework日志】更改log地址(简)
- Linux读写执行(RWX)权限
- ASP.NET Core 配置 - 创建自定义配置提供程序
- php自定义商品属性,php – 可变产品属性:自定义每个显示的单选按钮文本值
- jtessboxeditorfx 界面显示不出来_华为Mate40 Pro开箱简评,有点不开心
- 在CentOS7上安装RocketMQ 4.8.0
- 7-2 合并两个有序数组为新的有序数组 (15 分)
- “深圳疫情防控系统”服务10万人,背后有什么开发神器
- petya勒索病毒解密方法
- 医院计算机考核制度,医院信息科考核内容标准细则
- 游承超:钢化玻璃膜既保护屏幕又不影响触感(4P)
- 机器学习CIFAR10训练(卷积神经网络)
- python电影系统管理-Python 爬取电影网站的信息【如有重复请管理删帖】