美文网首页
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