Docker的那些事儿—如何自定义网络(23)
Docker提供了docker network create命令用于创建一个新的网络。Driver为null和host网络不支持用户创建,仅接受内置网络驱动程序的bridge或overlay类型。如果安装了第三方或自己的自定义网络驱动程序,则可以在此处指定driver,例如macvlan。
当安装Docker Engine时,会自动创建默认bridge网络。该网络对应于Engine传统依赖的docker0网桥。当启动使用docker run运行新容器时,它将自动连接到此桥接网络。这一点前面已经讲过。该bridge网络和none及host网络一样也是不允许删除的,但可以使用docker network create命令创建新的网络。
下面就来演示创建新的bridge网络
如果不指定--driver选项,该命令将为您自动创建一个桥接网络。其中网络name不能和已有网络重名,包括默认网络和已创建的网络。
创建的两个bridge网络的子网分别为172.18.0.0/16和172.19.0.0/16。宿主机上相应也多了两个网卡:br-ca9d200bf092和br-6ef3677d7abf,其中ca9d200bf092和6ef3677d7abf恰巧就是新建的bridge网络的NETWORKID。
为什么创建的两个bridge网络的子网分别为172.18.0.0/16和172.19.0.0/16?能不能用户指定?答案是:可以。
创建网络其他有用可选参数:--subnet指定子网。
docker network create --driver bridge --subnet 172.30.0.0/16 --gateway 172.30.0.1 my_bridge2
为什么默认bridge网络创建的网卡叫docker0,而我们自定义的bridge网络创建的网卡叫br-xxxxxxx。能不能用户指定?答案也是可以的。
我们查询默认bridge网络:
而自定义的bridge网络这个Options参数是空的。实际上我们创建网络的时候可以指定。使用-o或者--opt指定。可以指定的参数如下:
docker network create --driver bridge --subnet 172.50.0.0/16 --gateway 172.50.0.1 --opt"com.docker.network.bridge.name"="docker1000" my_bridge3
下一篇:Docker的那些事儿—使用自定义网络启动容器(24)