zoukankan      html  css  js  c++  java
  • 利用虚拟网桥实现Docker容器的跨主机访问

    最近在研究Docker,Docker的网络配置是比较令人头疼的部分,尤其是跨主机的容器间通信,很多解决方案都比较复杂,这里,我只用虚拟网桥来实现Docker的跨主机访问,分享出来,希望对Docker学习的各位有一定的启发。

    基本思想:

    由于Docker容器通过docker0 网桥实现同一主机间中,容器的ip地址分配和访问,所以,如果希望Docker跨主机访问,最简单的方式就是将不同主机的docker0 设置为同一网段。

    那么怎么实现跨主机呢?我这里将本机网卡也通过网桥来连接,那么,整体网络拓扑结构就是这样:

    但是通过这种桥接,所有网卡都要在一个网段下,所以要对每个Docker守护进程对ip的分配做出限制

    下面,我们就来实现这个结构

    我的两台Ubuntu 14.04 的虚拟机ip:

    Host1 : 10.211.55.3  网卡:eth0

    Host2 :10.211.55.5   网卡   eth1

    网关:10.211.55.1

    对容器ip的划分:

    Host1: 10.211.55.64/26

      地址范围: 10.211.55.65~10.211.55.126

    Host2: 10.211.55.128/26

      地址范围: 10.211.55.129~10.211.55.190

    需要的操作:

    以下,以Host1 为例,Host2 上操作相似,只是网卡名字不一样,我在这里,没有使用默认的docker0 网桥,而是新建了虚拟网桥

    1. 分别在Docker主机上建立虚拟网桥:

       Host1: $ sudo brctl addbr br0

       

    2. 为网桥分配一个同网段ip

      Host1: $ sudo ifconfig br0 10.211.55.10 netmask 255.255.255.0  

      Host2: $ sudo ifconfig br0 10.211.55.20 netmask 255.255.255.0

    3. 桥接本地网卡:

      Host1: $ sudo brctl addif br0 eth0

         

    这里,我们就准备好了网桥设置

    下面我们来修改Docker的配置,使用我们新建的网桥代替docker0:

    1. 修改 /etc/default/docker文件

      $sudo vim /etc/default/docker

    2. 添加守护进程的启动选项:

      Host1: DOCKER_OPTS=" -b=br0 --fixed-cidr='10.211.55.64/26' "  

      Host2: DOCKER_OPTS=" -b=br1 --fixed-cidr='10.211.55.128/26' "

          这里,-b 用来指定容器连接的网桥名字

         --fixed-cidr用来限定为容器分配的IP地址范围

    3. 保存文件并重启Docker服务

      $ sudo service docker restart

    下面,就可以来验证:

    1.分别在两个Host上启动一个容器

      $ docker run -it ubuntu /bin/bash

     2.在容器中运行ping命令查看连接情况  

      

  • 相关阅读:
    Android开发常见问题及解决方法
    Jquery chosen动态设置值实例介绍 select Ajax动态加载数据 设置chosen和获取他们选中的值
    Unity3d 基于物理渲染Physically-Based Rendering之实现
    Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
    Unity3d HDR和Bloom效果(高动态范围图像和泛光)
    unity3d 制造自己的水体water effect(一)
    unity3d shader之Roberts,Sobel,Canny 三种边缘检测方法
    Unity3d shader之卡通着色Toon Shading
    NVIDIA CG语言 函数之所有数学类函数(Mathematical Functions)
    Unity3d 使用DX11的曲面细分
  • 原文地址:https://www.cnblogs.com/ruiqingzhang/p/4463971.html
Copyright © 2011-2022 走看看