zoukankan      html  css  js  c++  java
  • docker单机网络类型

    docker单机网络类型概述

          Docker 安装时会自动在 host 上创建三种网络  分别为 bridge    host   none .   可用 docker network ls 命令查看

        

    none 网络

             none 网络就是什么都没有的网络.挂在这个网络下的容器除了 lo,没有其他任何网卡

             一些对安全性要求高并且不需要联网的应用可以使用 none 网络

    host 网络

           连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样

           在容器中可以看到 host 的所有网卡,并且连 hostname 也是 host 的

          直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络.

          当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了.

         另一个用途是让容器可以直接配置 host 网路.比如某些跨 host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables.

    bridge网络

            Docker 安装时会创建一个 命名为 docker0 的 linux bridge. 如果不指定--network,建的容器默认都会挂到 docker0

            docker0 对宿主机来讲相当于一个单独的网卡设备  对于运行在宿主机上的每个容器来说相当于一个交换机 所有容器的虚拟网线的一端都连接到docker0上

            并且docker0还是所有容器的网关

            容器的网卡 eth0@if34和宿主机上的brctl show 显示挂载到docker0桥下的veth28c57df是一对 veth pair

            veth pair 是一种成对出现的特殊网络设备,可以把它们想象成由一根虚拟网线连接起来的一对网卡,网卡的一头(eth0@if34)在容器中,另一头(veth28c57df)挂在网桥docker0上,其效果就是将eth0@if34也挂在了docker0上

            

     自定义bridge网络

         1.创建一个linux 网桥设备  基于Linux 内核支持创建              docker  network create  --driver bridge

         2.启动容器的时候把容器的网卡挂到此桥接设备上                docker   run      --network

             

       docker通过防火墙规则阻断了所有桥接设备的双向流量  相当于所有的交换机都是隔开的 要想跨网桥之间的容器进行通信 可以为容器添加单独的网卡设备

       如为httpd容器执行    docker network connect   my_net2 实现的网络拓扑如下

          

        

         

       

  • 相关阅读:
    解决:Could not resolve archetype org.apache.maven.archetypes
    Spring MVC配置MyBatis输出SQL
    Spring集成MyBatis 通用Mapper以及 pagehelper分页插件
    关于SpringMVC或Struts2接受参数接收不到的原因
    配置quartz启动时就执行一次
    ajaxFileUpload进行文件上传时,总是进入error
    spring mvc注入配置文件里的属性
    java中将一个文件夹下所有的文件压缩成一个文件
    flume failed to start agent because dependencies were not found in classpath
    ubuntu不能安装pip unable to install pip in unbuntu
  • 原文地址:https://www.cnblogs.com/yxh168/p/9602782.html
Copyright © 2011-2022 走看看