docker下的bridge network

docker下面的network默认使用的是bridge驱动。

安装完docker就会默认建立一个bridge network,所有新创建的container就会使用这个network。

但是docker手册里面提到,这个默认的bridge并不推荐在生产环境里面使用。

估计是由于docker的开发在default bridge network上的开发并不是中心,而default bridge network和用户自定义的bridge network上又有一些差别。所以建议大家还是建立自定义的bridge network。

默认bridge network和用户自定义bridge network的区别:

  1. 用户自定义bridge提供更好的隔离和容器应用的互操作:在一个自定义bridge network下的容器会暴露所有的端口给这个network下的其他容器,但默认不暴露任何端口到外界,这样方便了互操作性,并且也提供了安全性。
  2. 用户自定义bridge提供容器间的自动DNS解析:在用户自定义Bridge下的容器可以使用其他容器的名字来访问对方,提供DNS解析,方便用名字访问容器,而在默认network下面的容器只能通过ip访问其他容器,而容器IP一般是动态分配的,所以不方便使用。
  3. 容器可以在线的绑定或解绑自定义bridge network.
  4. 每个自定义bridge network都可以拥有自己的配置,默认bridge只有一个,所以配置也就只有一套。
  5. 自定义bridge network不能共享环境变量,而在默认bridge中可以建立连接,共享环境变量,但是这种方法应该也是刚开始设计的时候一个妥协,自定义bridge容器之间可以通过其他方法共享设置,比如mount相同的目录或文件,在docker-compose里面是用共享的变量或者使用Swarm services.

不管怎样,还是建议大家使用自定义bridge network,不要用默认的。

docker会根据网络自动生成接口(interface)和iptables配置项。


分享到:


相關文章: