Docker服务默认创建docker0网桥,它的内核层联通其他的物理或虚拟网卡,从而实现容器和本地主机在同一个物理网络。

Docker默认指定docker0接口的IP地址和子网掩码,还给出MTU(接口允许接收的最大传输单元)。这些值都可以在服务启动时配置

  • --bip=CIDR :IP地址与掩码格式,如192.168.1.5/24

  • --mtu=BYTES:覆盖默认的Docker mtu

或者是在/etc/default/docker 配置DOCKER_OPTS

由于docker网桥是Linux网桥,因此可以

$ sudo brctl show

当创建新的容器时,Docker从可用地址段选择空闲IP地址分配给容器的eth0,并使用宿主机docker0接口的IP作为所有容器的默认网关。目前,Docker不支持在启动容器时指定IP地址。

Linux网桥可以很容易替换为OpenvSwitch等功能强大的网桥实现,支持VLan等属性

自定义网桥

用户可以指定网桥来连接各个容器。在启动Docker服务时,使用-b BRIDGE--bridge=BRIDGE 指定网桥。

如果服务已经运行,需要先停止服务,并删除旧的网桥

$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brtcl delbr docker0

创建网桥bridge0

$ sudo brictl addbr birdge0
$ sudo ip addr add 192.168.5.1/24 dev bridge0
$ sudo ip link set dev bridge0 up

确认网桥创建并启动

$ ip addr show bridge0

配置Docker服务,默认桥接到创建的网桥

$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
$ sudo service docker start

results matching ""

    No results matching ""