一、简介
Docker有以下网络类型:
- bridge:多由于独立container之间的通信
- host: 直接使用宿主机的网络,端口也使用宿主机的
- overlay:当有多个docker主机时,跨主机的container通信
- macvlan:每个container都有一个虚拟的MAC地址
- none: 禁用网络
默认网络
Docker在默认情况下,分别会建立一个bridge、一个host和一个none的网络:
CNyteng:docker-volume yteng$ docker network ls
NETWORK ID NAME DRIVER SCOPE
557d70cd18ab bridge bridge local
27015fb1d01c host host local
d7bdd36df894 none null local
可以看到,driver类型为bridge的网络的名字也为bridge。在默认情况下,container都是使用的这个bridge的网络,此时container是可以访问外网和其他container的(需要通过IP地址)。
默认的名为bridge的网络是有很多限制的,为此,我们可以自行创建bridge类型的网络。默认的bridge网络与自建bridge网络有以下区别:
-
端口不会自行发布,必须使用
-p
参数才能为外界访问,而使用自建的bridge网络时,container的端口可直接被相同网络下的其他container访问。 -
container之间的如果需要通过名字访问,需要
--link
参数,而如果使用自建的bridge网络,container之间可以通过名字互访。 -
更多区别请参考