Docker 0、Docker桥驱动程序和容器之间的关系
我在看一张幻灯片,看到了这张幻灯片: 我想弄明白这一点。从: “默认情况下,Docker服务器创建并配置主机系统的Docker 0、Docker桥驱动程序和容器之间的关系,docker,docker-networking,Docker,Docker Networking,我在看一张幻灯片,看到了这张幻灯片: 我想弄明白这一点。从: “默认情况下,Docker服务器创建并配置主机系统的docker0一个名为docker0的网络接口,这是一个以太网桥设备。如果在启动容器时未指定其他网络,则容器将连接到网桥,所有来自和前往容器的流量将通过网桥流向Docker守护进程,Docker守护进程代表容器处理路由。” 但是我对这里的流量仍然有点困惑。假设我在一个新主机上安装了Docker。我假设docker0是在安装时创建和配置的。所以现在我的主机上有这个docker0以太网
docker0
一个名为docker0
的网络接口,这是一个以太网桥设备。如果在启动容器时未指定其他网络,则容器将连接到网桥,所有来自和前往容器的流量将通过网桥流向Docker守护进程,Docker守护进程代表容器处理路由。”
但是我对这里的流量仍然有点困惑。假设我在一个新主机上安装了Docker。我假设docker0
是在安装时创建和配置的。所以现在我的主机上有这个docker0
以太网桥
现在,假设我在新Docker主机上启动了一个容器:
docker run -it -p 9200:9200 -d --name myapp myapp
由于我没有指定网络驱动程序,因此默认情况下为我选择了
网桥
。根据上面文档中的简介,容器现在应该通过该docker0
网桥发送/接收流量。但是,在上面的图中,指示没有流量流入/流出基于网桥的容器(C4、C5、C6)来自docker0
,,我想知道:为什么?!有什么想法吗?提前谢谢!你是对的,这个方案并不完全符合正在发生的事情。我没有看视频,也许“图片”是一个具体时刻的快照。也许我们应该看视频来理解上下文
无论如何,当Docker创建docker0
inteface时,会使用新链创建一些iptables规则(Docker和Docker-ISOLATION)。默认情况下,Docker容器只能从主机访问。然后使用Docker run命令上的-p
选项,您可以将主机上的端口直接映射到容器。这样,您就可以访问主机上确实位于容器上的特定端口。您可以在运行容器之前和之后使用是的,容器是在同一网络上创建的,它们可以尝试在该网络上进行通信。默认情况下,docker使用的网络范围是172.17.0.0/16,因此第一个容器将是172.17.0.2,第二个容器将是172.17.0.3,依此类推。(172.17.0.1是docker的ip).很好的信息。请注意,第一个容器从
172.17.0.2开始(.1是主机本身)谢谢@OscarAkaElvis(+1)-为了澄清,我在上面的第一句话中发布了一个指向视频的链接,我的截图是从该视频的10:45开始拍摄的。另外,在上面的截图中,以下两个之间的区别是什么:(1)docker0
,(2)集装箱的“桥”和(3)标签为br-ee40a8236479
?再次感谢!对@Robert。更正我看了视频:docker0是主机1中的默认网桥,br-ee40a8236479是主机2中的用户定义网桥。主机1和主机2在底层网络中有一些连接。容器网桥指的是容器连接到默认网桥的事实或用户定义的桥。