获取docker容器的主机虚拟网卡

起因

今天看到一个做docker开发工程师写的如何实现docker网络隔离的方案,总的来说就是找到docker容器对应的主机虚拟网卡,然后使用wondershaper或traffic control对虚拟网卡进行流量控制。这个方案还是比较简单的,不过看了下他给出的如何找容器对应的主机虚拟网卡的步骤,觉得还是过于麻烦,而且还依赖于nsenter与ethtool命令,这个感觉不太好,就想着要进行一下这个过程。

改进

因为以前看到pipework的源码,对如何操作容器网络还是比较了解的,于是写了个简单脚本完成上述任务

#首先得到容器进程的pid
CON_PID=$(docker inspect '--format={{ .State.Pid }}' test)
#首先得到容器的命名空间目录
CON_NET_SANDBOX=$(docker inspect '--format={{ .NetworkSettings.SandboxKey }}' test)
#在netns目录下创建至容器网络名字空间的链接,方便下面在docker主机上执行ip netns命令对容器的网络名字空间进行操作
rm -f /var/run/netns/$CON_PID
mkdir -p /var/run/netns
ln -s $CON_NET_SANDBOX /var/run/netns/$CON_PID
#获取主机虚拟网卡ID
VETH_ID=$(ip netns exec $CON_PID ip link show eth0|head -n 1|awk -F: '{print $1}')
#获取主机虚拟网卡名称
VETH_NAME=$(ip link|grep "if${VETH_ID}:"|awk '{print $2}'|awk -F@ '{print $1}')
#最后删除在netns目录下创建的链接
rm -f /var/run/netns/$CON_PID

可以看到上述方案比原方案的优点在于仅使用了ip命令,比较简单,可惜原作者的博客没有开放评论权限,我也没法将这个改进办法告诉他。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hongten

get和post方法的区别

在form表单提交数据的过程中,method属性提供了两个值:get,post,默认为get方式[参1]

53530
来自专栏Android相关

Android耗电分析--Battery Historian

APP越来越大,功能越来越多,导致后台运行时耗电急速上升,使用官方推荐的Baterry-Historian进行分析 官方链接:https://github.c...

42520
来自专栏魏艾斯博客www.vpsss.net

lnmp 如何备份网站文件和数据库

21120
来自专栏我就是马云飞

Android组件化搭建

组件化开发 组件化开发这个名词并不陌生,但真正什么才是组件化开发,大家在网上搜可以查看很多相应的文章,我概念中,模块化的开发,就是把很多模块独立出来,基础模块,...

26470
来自专栏破晓之歌

各类远程工具对比 原

界面及简,连接较快,但是传播上慢点。举例说,在腾讯云上直接下载就块点,几百K,用这个显示只有几十K。能用,但是时间长看白色界面很累。

2K40
来自专栏ppjun专栏

AndroidIM融云接入

融云官网地址http://www.rongcloud.cn/docs/android.html

43530
来自专栏魏艾斯博客www.vpsss.net

lnmp环境下如何手动备份网站文件和数据库

我们站长做个网站都是挺不容易的,从域名注册,掌握虚拟主机或者 VPS 的基本配置,到安全防护,搭建网站、图片处理、发布文章,SEO 等等,是样样精通,不过这里面...

455150
来自专栏weixuqin 的专栏

win10 + Lubuntu 双系统安装

最近重装了系统,索性直接安装win10 + Lubuntu 双系统,便于在物理机下进行 Linux开发. 这里我选择的 Linux 发行版是 Lubuntu ....

70620
来自专栏北京马哥教育

网传运维面试题,你答对了多少?

最近网上流传了一份没有答案的Linux运维面试题。51CTO博主豪鹫趁工作之余,利用自己三年的运维经验交出了一份答卷。欢迎大家一起来点评~

49730
来自专栏散尽浮华

nginx反向代理tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题

问题说明: 测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现...

353100

扫码关注云+社区

领取腾讯云代金券