• docker 网络模型


    1. bridge

    桥接模式,也是容器默认的模式;容器有自己的Network NameSpace,docker会自动为容器配置网络栈
    docker在宿主机上默认创建一个docker0的网桥,docker0根据Mac地址学习将数据转发到不同的端口
    Veth Pair:Veth Pair设备被创建后,总是以虚拟网卡的形式成对出现,从其中一个虚拟网卡发出的数据可以直接出现在另一个网卡上,即使两张网卡在不同的Network NameSpace
    docker容器被创建后,会创建一对 Veth Pair,一个在容器内部,一个在宿主机上,这样数据就可以在容器哥宿主机之间传输
    统一宿主机上的容器通信流程:
    容器A将数据发送到eth0(Veth Pair中在容器内的一端),然后数据直接出现在宿主机上的另一端(Veth Pair中在宿主机的一端),然后数据再转发到docker0网桥,然后找到对应的容器B的地址,将数据转发到容器B的Veth Pair设备在宿主机上的一端,然后数据直接出现在容器B内部对应的虚拟网卡上

    2. none

    容器有自己的Network NameSpace,docker不会为容器配置网络栈,需要用户自己配置网络栈

    3. host

    宿主机模式,容器直接使用宿主机的网络模式,容器直接监听宿主机上对应的端口

    4. join-container

    容器加入其它容器,使用其他容器的网络栈;k8s中的pod就是使用这种模式,pod先创建一个infra容器,pod内定义的容器都加入infra容器,NameSpace级别的配置和数据卷所有容器共享

    如果文章对您有所帮助,可以点一下推荐哦
  • 相关阅读:
    I/O模型
    同步异步与协程
    GIL(全局解释器锁)
    解决pycharm启动慢
    操作系统发展史
    TCP和UDP
    粘包问题
    网络编程
    异常
    常用函数汇总
  • 原文地址:https://www.cnblogs.com/virgosnail/p/14636097.html
Copyright © 2020-2023  润新知