介绍
官方不推荐在生成使用docker0这个bridge,取而代之,建议在创建容器的时候使用 — network来自动自己创建的network bridge。
查找 docker 容器中的网卡外联的 veth pair 的另一张网卡
为什么需要找到宿主机上的veth peer 呢?
- 网络故障排除: 有时候容器无法与外部进行通信,需要确定问题是出在容器内部还是宿主机上。通过找到容器内的 veth 接口的另一侧,你可以验证它是否正确配置。
- 网络监控和管理: 在一些情况下,你可能希望监控或管理容器的网络流量。找到另一侧的 veth 接口可以帮助你识别特定容器产生的网络流量,并可能应用特定的网络策略。
- 容器间通信: 如果你在多个容器之间设置了自己的网络,找到另一侧的 veth 接口可以帮助你建立容器间的通信,例如在不同容器之间进行数据传输或应用程序协作。
- 网络配置和优化: 在某些情况下,你可能希望配置容器的网络连接方式,例如限制容器的带宽、更改容器的 IP 地址等。找到另一侧的 veth 接口可以让你更好地了解容器的网络连接,从而进行必要的配置和优化。
总之,找到容器内的 veth 接口的另一侧是为了更好地理解容器的网络连接,并能够对其进行配置、排除故障、监控和管理。
下面是步骤:
(1)找到容器网络命名空间编号
docker inspect –format “{{.State.Pid}}” <容器ID>
(2)进入容器网络命名空间并查看网卡信息
nsenter -n -t <容器网络命名空间编号>
ip link
exit
备注: ip link 命令查看当前容器网卡信息,注意看3: eth0@if8,其中3是eth0网卡的index,8是和它成对的veth 的index。
(3)查找docker容器中的网卡外联的veth pair的另一张网卡
现在只需要到运行此容器的宿主机上,执行如下命令,就能找到对应的 8 的veth网卡是哪一个了。
ip link show | grep 8
参考:https://www.cnblogs.com/zhangmingcheng/p/17637236.html
参考
docker的网络模式:bridge(重要)
如何管理linux设备上的bridge(网桥)和docker bridge
Docker多台物理主机之间的容器互联
绑定Dokcer容器到主机指定网卡的方法(双网卡没成功,还是走优先级高的默认路由的会)