docker0网桥
安装Docker之后,宿主机会多出docker0。同时在宿主机的内核路由表会增加一条静态路由
$ route -n
...
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
当使用docker run
运行容器时,在容器中会看到两个网卡lo和eth0,其中eth0的IP为172.17.0.2/16和宿主机网桥docker0在同一个网段。在查看容器的路由,默认网关恰恰是docker0。此时查看宿主机的网络设备,可以发现veth开头的网卡。
在Linux中,可以使用brctl查看和管理网桥
$ sudo brctl show
docker0网桥是Docker daemon启动时自动创建的,IP默认为172.17.0.1/16,Docker提供参数帮助用户自定义docker0.
--bip=CIDR
设置docker0的IP地址和子网范围,使用CIDR格式--fixed-cidr=CIDR
限制IP范围--mtu=BYTES
自定义网桥
$ sudo brctl addbr br0
$ sudo ifconfig br0 188.18.0.1
启动Docker daemon时,使用--bridge=br0
在Ubuntu中,可以将参数在/etc/default/docker
的DOCKER_OPTS
配置