Docker网络有四种模式,Bridge是Docker默认的配置。下面是Docker官网对于Bridge模式的解释:`
对于Docker来说,网桥模式使用一个网桥来允许连接在同一个网桥上的容器进行通信,同时它使得没有连接在同一个网桥上的容器隔离开。bridge模式在主机上自动配置规则从而使得连接不同网桥的容器不能直接的和彼此通信
网桥适用于运行在相同的Docker daemon上的容器。对于运行在不同的Docker daemon上的容器,你能通过配置机器上的路由或者使用overlay network来进行通信<
`
由此可知,当我们的容器是处于同一个Daemon(即是同一台主机)下的时候,默认的网络模式是Bridge。当我们创建一个容器的时候,Docker会自动的创建一个叫Docker0的网桥,然后你之后再不特意指定网络模式的情况下都会自动连接到Docker0网桥上。
要了解Docker中的bridge模式,我们首先了解下Linux下的bridge。Linux bridge模块是Linux Kernel网络模块的一个重要组成部分,主要是用来保障不同虚拟机之间的通信或者是虚拟机与主机之间的通信,详情如下(图来自于http://blog.daocloud.io/docker-bridge/):
如图可知,Linux bridge主要有两个作用。第一个是连接虚拟机和主机,图中的etho为主机网卡,bro为网桥,虚拟机和网桥之间通过br0进行通信。第二个作用是连接两台虚拟机,如图两台虚拟机都连接在同一个网桥上,因为它们可以和彼此进行通信。
看了Liunx bridge,我们因此可知Docker bridge的作用就是连接我们的容器和主机或者多个容器。下面我们来看一下