linux-docker网络创建

文章转载于www.centos.bz,整理适合于本人的有效信息,用于记录。

https://www.centos.bz/2017/01/docker-network-create-create-a-network/

指定高级选项

当创建一个网络时,Engine默认为这个网络创建一个不重叠的子网。这个子网不是现有网络的细分。 它纯粹是为了寻址目的。可以直接使用–subnet选项来覆盖这个默认行为并指定一个子网。在一个bridge网络上创建一个单独的子网:

$ docker network create --driver=bridge --subnet=192.168.0.0/16 br0

除此之外,可以指定–gateway –ip-range–aux-address选项。

$ docker network create \
  --driver=bridge \
  --subnet=172.28.0.0/16 \
  --ip-range=172.28.5.0/24 \
  --gateway=172.28.5.254 \
  br0

如果没有指定–gateway,那么Engine将从首选的ip池中为你选择一个gateway。对于overlay网络和及类似功能的网络驱动,可以创建多个子网。

$ docker network create -d overlay \
  --subnet=192.168.0.0/16 \
  --subnet=192.170.0.0/16 \
  --gateway=192.168.0.100 \
  --gateway=192.170.0.100 \
  --ip-range=192.168.1.0/24 \
  --aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
  --aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
  my-multihost-network

要确保子网没有重叠。如果重叠了,网络创建将失败,然后Engine返回一个错误。

bridge驱动选项

当创建一个自定义的网络时,默认的网络驱动(如bridge)可以传递额外的选项。下面是这些选项且有与docker daemon选项等同的选项:

选项等同描述
com.docker.network.bridge.name创建Linux bridge使用的bridge名称
com.docker.network.bridge.enable_ip_masquerade–ip-masq启用IP伪装
com.docker.network.bridge.enable_icc–icc启用或禁用容器间连接
com.docker.network.bridge.host_binding_ipv4–ip绑定容器端口时默认绑定的IP
com.docker.network.driver.mtu–mtu设置容器网络MTU

下面这些参数可以传递给docker network create,可以用于任何网络驱动。

参数等同描述
–gateway主子网的IPv4或IPv6网关
–ip-range–fixed-cidr从一个IP范围分配IP
–internal限制外网网络连接到这个网络
–ipv6–ipv6启用Ipv6网络
–subnet–bip子网

例如,使用-o或–opt选项当发布端口时绑定的IP地址:

$ docker network create \
    -o "com.docker.network.bridge.host_binding_ipv4"="172.19.0.1" \
    simple-network