docker宿主环境中容器网络是怎么样的

发布时间:2021-11-18 09:51:29 作者:小新
来源:亿速云 阅读:146

这篇文章主要介绍了docker宿主环境中容器网络是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

查看docker0 linux bridge:

在宿主机上运行如下命令,从这里面我们看到docker在host上的linux bridge device,另外这个bridge上attach了4个从设备。当然根据上一篇文章,这些从设备一定是veth pair device的一端,而另一端一定是在docker container的network namespace里。

brctl show

docker宿主环境中容器网络是怎么样的

查看veth pair从设备:

在宿主机上运行如下命令,从这里面我们看到在host的default network namespace中确实有4个attach到上面docker0 linux bridge上的设备。

ip addr|grep docker0

docker宿主环境中容器网络是怎么样的

查看docker容器:

在宿主机上运行如下命令,我们看到确实是有4个k8s pod容器在运行,根据上一篇文章,每个容器都有一个network namespace,所以也印证了上面命令中的docker0 bridge上attach的4个设备。这里有同学可能会有疑问,明明是8个容器,为什么说是4个呢?细心的同学应该观察出来了,另外4个都是同样的image。没错,这是因为在k8s中,每个pod都需要有infrastructure image的(在以前文章安装kubelet的时候我们通过启动参数--pod-infra-container-image配置过这个基础image),而k8s中这个基础image的container和我们应用程序的image的container是共用同一个network namespace的。所以在k8s的pod之中,infrastructure image产生的container和同一个pod中所有application image产生的container在同一个network namespace里,当然这里就是4个network namespace了。

docker ps

docker宿主环境中容器网络是怎么样的

进入容器的network namespace里:

这里我们在宿主机器上选择一个container,用以前文章介绍的kube-debug进入容器内部

kubectl get podsdocker pskubectl-debug deployment-nginx-app-69b6bbfd6d-8n69w --namespace default

docker宿主环境中容器网络是怎么样的

docker宿主环境中容器网络是怎么样的

查看容器内的veth设备:

在容器中运行以下命令,我们可以看到容器内确实有一个veth设备。根据以前文章,这个veth设备就是veth pair在容器的另一端,并且这一端的设备也是有ip地址的,ip地址就是container的ip地址。当然它的另一端是attach在宿主default namesapce中的docker0 bridge device里了。

ip -d link show

docker宿主环境中容器网络是怎么样的

查看容器内的路由表:

在容器中运行以下命令,我们可以看到容器network namesapce中的路由表信息。

route -n

docker宿主环境中容器网络是怎么样的

根据以上信息总结docker宿主中的网络:

感谢你能够认真阅读完这篇文章,希望小编分享的“docker宿主环境中容器网络是怎么样的”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. docker宿主调用容器内命令是什么
  2. docker容器中怎么获取宿主机ip

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:docker宿主环境中的容器网络是什么意思

下一篇:Float如何构建三栏DIV CSS网页布局

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》