按照一般的思维,docker默认提供的bridge网络与用户自定义的bridge网络之间,在功能上应该没有什么区别,但实际情况与此相反,两者之间存在着一些不同,假设有两个容器连接在同一个bridge网络之上,在网络是默认的与用户自定义的情况下的一些不同点:
默认bridge网络 | 用户自定义bridge网络 | |
连通性 | 相互之间需要通过-p或者--publish选项指明开放的端口,即使是两个容器连接在相同的默认bridge网络之上 | 不需要-p与--publish选项,相互之间的端口全部开放 |
域名解析 | 相互之间使用名称通信时需要指定--link选项,这种方式已过时并且不容易调试 | 无需特别指定选项,可直接通过名称与别名通信 |
热插拔 | 需要停止容器的执行并重新创建容器才能离开或者加入默认bridge网络 | 支持随时加入与离开某个用户自定义bridge网络 |
灵活性 | 系统中只能存在一个默认网络,牵一发而动全身 | 可定义多个用户自定义网络,每个可单独配置 |
共享环境变量 | 不支持通过--link选项的方式共享环境变量,更高级的共享环境变量的方式:data volume、docker-compose、docker-configs。 | 支持通过--link选项的方式共享环境变量 |