Docker 网络之理解 bridge 驱动

》中介绍了 CNM(Container Network Model),并演示了 bridge 驱动下的 CNM 使用方式。为了深入理解 CNM 及最常用的 bridge 驱动,本文将探索 bridge 驱动的实现机制。

docker0 并不是一个简单的网卡设备,而是一个网桥!下图展示了 docker bridge 网络模式的拓扑图:

这里网桥的概念等同于交换机,为连在其上的设备转发数据帧。网桥上的 veth 网卡设备相当于交换机上的端口,可以将多个容器连接在它们上面,这些端口工作在二层,所以是不需要配置 IP 信息的。上图中的 docker0 网桥就为连在其上的容器转发数据帧,使得同一台宿主机上的 docker 容器之间可以相互通信。既然 docker0 是二层设备,那么它为什么还需要 IP 呢?其实,docker0 是一个普通的 linux 网桥,是可以为它配置 IP 的,我们可以认为它的内部有一个可以用于配置 IP 的网卡。Docker0 的 IP 地址作为所连接的容器的默认网关地址

$ br0 .

-A POSTROUTING -s ./ ! -o docker0 -j MASQUERADE

$ docker run -d -p : --name=myweb ljfpower/nodedemo

$ iptables-*-A DOCKER ! -i docker0 -p tcp -m tcp --dport -j DNAT --to-destination .:*-A DOCKER -d ./ ! -i docker0 -o docker0 -p tcp -m tcp --dport -

$ iptables -I DOCKER -i docker0 ! -s . -j DROP

-A FORWARD -i docker0 -o docker0 -j ACCEPT

$ /proc/sys/net/ipv4/ip_forward

# /dev/mapper/ubuntu--vg-root on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=/dev/mapper/ubuntu--vg-root on /etc/ type ext4 (rw,data=/dev/mapper/ubuntu--vg-root on /etc/hosts type ext4 (rw,data=

$ docker run -it --name mycon -h lion --dns=. ubuntu:

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...