美文网首页Docker
Docker网络实现

Docker网络实现

作者: 如来自然 | 来源:发表于2016-03-01 13:56 被阅读237次

    众所周知,docker网络是它薄弱的地方!

    Docker的网络实现:

    利用linux的网络命名空间和虚拟网络设备(特别是veth pair)

    1、基本原理
    实现网络通信:机器需要至少一个网络接口:物理的或者虚拟的

    不同子网通信:额外路由机制

    docker:默认是虚拟的接口

    虚拟接口速率:转发效率极高

    虚拟接口速率极高的原理:linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发。
    通俗的将:发送接口的发送缓存的数据直接复制到接收接口的接收缓存,不用外部设备转换。

    2、网路创建
    docker创建一个容器会做什么(网络相关)
    1、创建一对虚拟接口,分别放到宿主主机和新容器的 命名空间里

    2、宿主主机一端的虚拟接口会链接到默认的docker0网桥或着你指定的网桥上,
    而且有一个以veth开头的唯一名字

    3、容器里的虚拟接口放到容器里,修改名字作为eth0

    4、从网桥可用地址段中获取一个空闲地址分配给容器的eth0,网关则是docker0的ip

    然后就可以访问外部和连接其它容器了!

    相关文章

      网友评论

        本文标题:Docker网络实现

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