docker network create
命令用于创建一个新的网络连接。 DRIVER
接受内置网络驱动程序的桥接或覆盖。如果安装了第三方或自己的自定义网络驱动程序,则可以在此处指定DRIVER
。 如果不指定--driver
选项,该命令将为您自动创建一个桥接网络。 当安装Docker Engine
时,会自动创建桥接网络。 该网络对应于Engine传统依赖的docker0
网桥。 当启动使用docker run
运行新容器时,它将自动连接到此桥接网络。不能删除此默认网桥,但可以使用network create
命令创建新的网络。
$ docker network create -d bridge my-bridge-network
准备覆盖网络后,只需在群集中选择一个Docker主机,并发出以下内容创建网络:
$ docker network create -d overlay my-multihost-network
用法
docker network create [OPTIONS] NETWORK
选项
名称,简写 | 默认 | 说明 |
--attachable | false | 启用手动容器安装 |
--aux-address | map[] | 网络驱动程序使用的辅助IPv4或IPv6地址 |
--driver, -d | bridge | 驱动程序管理网络 |
--gateway | 用于主子网的IPv4或IPv6网关 | |
--internal | false | 限制对网络的外部访问 |
--ip-range | 从子范围分配容器ip |
|
--ipam-driver | default | IP地址管理驱动程序 |
--ipam-opt | map[] | 设置IPAM驱动程序的具体选项 |
--ipv6 | false | 启用IPv6网络 |
--label | 在网络上设置元数据 | |
--opt, -o | map[] | 设置驱动程序特定选项 |
--subnet | 表示网段的CIDR格式的子网 |
连接容器网络
启动容器时,使用--network
标志将其连接到网络。 此示例将busybox
容器添加到mynet
网络:
$ docker run -itd --network=mynet busybox
如果要在容器运行后将容器添加到网络,请使用docker network connect
子命令。
指定高级选项
创建网络时,引擎默认为网络创建一个不重叠的子网。 该子网不是现有网络的细分。 它纯粹用于IP寻址目的。可以覆盖此默认值,并使用--subnet
选项直接指定子网络值。 在桥接网络上,只能创建单个子网:
$ 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
标志,引擎将从首选池中选择一个。对于覆盖网络和支持它的网络驱动程序插件,可以创建多个子网络。
$ 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
确保子网不重叠。如果重叠的话网络创建失败,并且引擎会返回错误。
桥接驱动程序选项
创建自定义网络时,默认的网络驱动程序(即bridge)具有可以传递的其他选项。
例如,使用-o
或--opt
选项在发布端口时指定IP地址绑定:
$ docker network create \
-o "com.docker.network.bridge.host_binding_ipv4"="172.19.0.1" \
simple-network