给容器设置网络

  1. 通过pipework给容器添加、配置、期望网络(这个就不说了)
  2. 如果在不重启容器的情况下,禁用容器的网络,然后在需要的时候在启动呢?
    1. 禁用容器网络: ifdown eth0
    2. 启用容器网络: ifup eth0
  3. 如果容器中没有ifup、ifdown、甚至没有ip命令呢?
    1. 通过nsenter -t pid-of-container -n   (进入容器网络名字空间,但是文件系统还是宿主机的)
    2. 执行ip相关命令:

       

      注意: 这里使用的是ip命令,而不是ifconfig、ifup之类的,因为ip命令不参考本地文件系统中的相关配置,而后者会参考本地文件系统相关网络配置;因为我们需要ip命令,所以使用的是宿主机的文件系统,而不是容器的文件系统,所以在这里设置容器网卡的时候,不能使用ifconfig、ifup之类

    3. 在宿主机上使用ip netns exec 也能达到和使用nsenter相同的效果,但是似乎没有发现一个比较好的办法根据pid找到网络名字空间,所以还是nsenter更方便些

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据