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 实现的网络拓扑如下

          

        

         

       

  • 相关阅读:
    015-面向对象
    017-错误和异常
    019-File
    020-OS
    021-模块
    022-标准库
    数据库目录
    数据库 概念详解
    MySQL 基础
    MySQL 数据库操作
  • 原文地址:https://www.cnblogs.com/yxh168/p/9602782.html
Copyright © 2011-2022 走看看