Man*_*ndo 29 networking tcp-ip docker linux-containers
我正在尝试了解连接到主机并连接到Docker容器内的应用程序的网络数据包所发生的情况.
如果它是一个经典的虚拟机,我知道到达主机的数据包将由虚拟机管理程序(比如VMware,VBox等)传输到虚拟机的虚拟网卡,并从那里通过客户机操作系统的TCP/IP堆栈传输,终于达到了申请.
在Docker的情况下,我知道主机上的数据包从主机的网络接口转发到docker0
网桥,该网桥连接到容器内veth
虚拟接口上的一对eth0
.但那之后呢?由于所有Docker容器都使用主机内核,假设数据包是由主机内核的TCP/IP堆栈处理的,这是正确的吗?如果是这样,怎么样?
我真的想阅读一个详细的解释(或者如果你知道一个资源可以随意链接它)关于真正发生的事情.我已经仔细阅读了这个页面,但它没有说明一切.
在此先感谢您的回复.
网络堆栈,如"代码",绝对不在容器中,它的内核中只有一个由主机和所有容器共享(你已经知道了).每个容器具有的是它自己独立的网络命名空间,这意味着它有自己的网络接口和路由表.
这是一篇简短的文章,通过一些例子介绍了这个概念:http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/ 我发现这篇文章也很有帮助:http: //containerops.org /十一分之二千零一十三/ 19/LXC联网/
我希望这能给你足够的指点来深入挖掘.
归档时间: |
|
查看次数: |
7170 次 |
最近记录: |