2017/02/17
http://wiki.jikexueyuan.com/project/docker-technology-and-combat/network.html
Docker的网络也是基于Linux下的网络名字空间和虚拟网络设备的。
当然这个设置跟OpenStack有相同之处,肯定也有不同之处。现在我只是对Docker的流量走向有一个大致的了解,还不是很清楚。需要进一步的了解。
把现在大致的了解自己描述如下。
(今天折腾了算是一天的服务器,也是烦的不行。不过幸好安好了,就这样吧)
第一步,在docker安装之后,就会产生一个docker0的虚拟网桥,这个网桥是在ifconfig里面显示的,跟其余网卡一样,拥有一个IP。
最重要的一步,要注意就是不容易发现的,使用iptables-save
之后可以发现有一条防火墙(不算防火墙吧)规则,是将某一部分流量重定向至这个网卡的。
直接使用iptables -L
看到的内容有些不同,但应该是一致的。
直接查看了跟这个网卡相关的内容,内容有些多,是因为此时有一个容器运行了着ssh、http服务,并且做了端口映射。
第二步,启动一个容器之后,使用虚拟设备对(这个东西需要用时间去研究下),宿主机网卡中产生一个虚拟的网卡
这个网卡就是在宿主机上的一端。
然后另外一端,就在容器里面,名字为eth0。不过宿主机里面是看不到的,这一点就比较尴尬。这部分我后续在研究研究docker的具体网络实现,这其实就涉及到docker内部的机理了。
看下面02/20的信息提供的链接,已时间证明可行。
从命令brctl show
看到相应的端子,与网卡名字形同。
基本步骤就是这样,内部的流量走向就需要仔细的研究了。
2017/02/20
前面的iptables的地方是一个分界点。iptables将从eth0(宿主机网卡)接受到的流量重定向至了网卡中,也就是docker0。理解了这一点,就可以知道实际的流量走向。
想要看到另一端,就需要添加另外的软连接,因为docker删除了这部分内容,可能是为了保持这部分的安全性吧。
http://cloud.51cto.com/art/201412/459316.htm