美文网首页
docker网络之bridge详解

docker网络之bridge详解

作者: 谜00016 | 来源:发表于2018-10-22 15:48 被阅读37次

上一篇文章docker网络之Linux网络命名空间(namespace)中我们了解了一些关于网络命名空间的知识,以及很重要的veth pair。这一节我们继续来了解一下docker容器之间是如何通信的。

docker原生网络种类

docker安装会在自动在机器上创建三种网络模式,使用docker network ls命令查看一下

关于后两种网络模式host和none,可以参考此篇文章,本篇我们来重点看下bridge模式。

Docker 安装时会创建一个 命名为 docker0 的 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0 上。
执行ip a命令,我们看下结果

第四个是docker0,以及后面一个vethebb3869@if19vethebb3869@if19会挂到docker0上。

那么vethebb3869@if19这个是什么呢?还记得我们上一篇文章中提到的成对出现的veth这个玩意吗?我们先看进入容器看下ip a

这个eth0@if20就是和宿主机中的vethebb3869@if19是成对的veth。
那么容器之间通信的秘密就很简单了,容器和宿主之间通过成对的veth来连接,在容器外的veth挂在docker0上,容器之间通过docker0这个桥梁实现了互相通信,如下图所示意

那么如何证明vethebb3869@if19是挂在docker0上的呢?我们需要安装一个工具

sudo yum install -y bridge-utils

安装完成后,执行

brctl show
结果如下

我们可以看到interfaces列下就是vethebb3869。

相关文章

网友评论

      本文标题:docker网络之bridge详解

      本文链接:https://www.haomeiwen.com/subject/gxrgzftx.html