【发布时间】:2016-09-28 22:25:12
【问题描述】:
我知道docker默认创建一个虚拟网桥docker0,所有容器网络都链接到docker0。
如上图:
- 容器
eth0与vethXXX配对 -
vethXXX链接到docker0与链接到交换机的机器相同
但是docker0 和主机eth0 之间是什么关系?
更具体地说:
- 当一个数据包从容器流到docker0时,它怎么知道它会被转发到eth0,然后再到外界?
- 当外部数据包到达eth0时,为什么它会被转发到docker0然后容器?而不是处理它或丢弃它?
问题 2 可能有点令人困惑,我将保留它并进一步解释:
- 是一个由容器初始化的返回包(问题1):由于外部不知道容器网络,所以将包发送到主机
eth0。它是如何转发到容器的?我的意思是,必须有地方存储信息,我该如何查看?
提前致谢!
看了答案和官网文章,我发现下图更准确,docker0和eth0没有直接链接,而是可以转发数据包:
http://dockerone.com/uploads/article/20150527/e84946a8e9df0ac6d109c35786ac4833.png
【问题讨论】:
-
有人可以更新最后一个 png 链接吗? (破404)》下图
-
@HLL 我不记得它长什么样了,但这里是another that shows the concept of separation of the networks
标签: networking docker