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