通常默认的情况下我们使用的是docker的bridge的网络,用户也可以根据自己的业务需要,创建user-defined
docker 提供三种user-defined网络驱动:bridge,overlay,macvlan。
其中overlay和macvlan用于创建跨主机的网络
主要讨论bridge
我们可以通过bridge驱动创建类似前面默认的bridge网络
docker network create --driver bridge brnet1
通过brctl show看到我们新建的网络
新增加了一个网桥br-32a5cb322311 ,这里的32a5cb322311正好是新建的brnet1的短ID,
通过docker network inspect brnet1查看
在这里可以看到新建的brnet1的subnet是172.18.0.0/16,网关是172.18.0.1,这里的172.18.0.0/16网段是docker自动分配的网段
我们也可以自己指定网段和网关:--subent和--gateway
容器要使用新的网络,需要在新建运行(docker run)的时候,通过--network=去指定
之前我们做的试验的容器的IP都是docker 自动从subent中分配,如果我们想自己指定一个静态IP,如何指定呢?
我们可以通过--ip指定,注:只有通过--subnet创建的网络才能指定静态IP。
如果使用不指定--subnet的网络,会报如下错误:
如下是拓扑图,可以借鉴一下:
最后的最后,提醒大家:最好不要将容器设置成与host相同网段的,否则host的主机将被干扰,当然如果收到了干扰也不用怕,可以使用docker network rm <自己设置的bridge的名称> 将这个bridge删除