修改docker0的IP,教程写的是/etc/default/docker文件,但是那是过时的配置,真正的配置是在/etc/docker/daemon.json,格式是json的:

 {
"registry-mirror":"http://daocloud.io",
"bip":"10.103.200.1/24",
"fixed-cidr":"10.103.200.0/24",
"insecure-registry":"daocloud.io:5000"
}

安装openvswitch
  安装流程可以参看:https://www.cnblogs.com/xkops/p/5568167.html

  还需要安装bridge-utils,因为需要brctl。

  遇到的问题:
  ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory)
  启动方式不正确,之前的方式是service openvswitch start;但是这种方式不够,启动的时候会看到openvswitch-db没有启动的提示;openvswitchd启动成功
还需要通过ovs-ctl来进行启动(见下面的指令);

./home/ovs/rpmbuild/BUILD/openvswitch-2.3./utilities/ovs-ctl start
(停止服务:/home/ovs/rpmbuild/BUILD/openvswitch-2.3./utilities/ovs-ctl stop)

  执行ovs-vsctl add-br docker_tunnel2以及sudo ovs-vsctl add-port docker_tunnel gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.56.5的时候,会卡住;报错:
  connection attempt failed (Permission denied)
  不知原因为何;但是ctrl+c之后,看到其实已经创建成功;
  怀疑是这个版本(2.3.2)的bug,于是下载了最新版2.5.4,启动服务后发现爆了异常:
ovs|00003|daemon_unix|EMER|/var/run/openvswitch/ovsdb-server.pid: pidfile check failed (Permission denied), aborting
ovs|00002|db_ctl_base|ERR|unix:/var/run/openvswitch/db.sock: database connection failed (Permission denied)
  后来手动执行ovs-ctl的start,问题解决。

/home/ovs/rpmbuild/BUILD/openvswitch-2.3./utilities/ovs-ctl start

说明
  本质上,你可以把单机想象成一个局域网,这样,两个网络之间想要通信,就需要把网关设置到对方的机器上面,现在宿主机即使网关,所以A向B的docker通信,需要向A的路由器增加一条静态路由,就是对于通往B的docker的请求的网关是要路由到B的IP上,然后又B的IP(路由器)在转交给B的docker。
  什么是网桥呢?顾名思义,网桥的作用是做网络间的桥梁,所以网桥一定是网关,而且A域的网桥是B域的网关。因为网桥是基于链路层的协议,所以网桥及其本网一定要在一个Mac可以发现的网络内。
  docker0是一个默认的docker的网桥,没有配置文件,是docker daemon每次启动的时候临时构建的一个网桥;这个网桥的作用就在于将docker和宿主机的网络连接在一起;所以docker可以通过网桥将网络请求发送到宿主机,然后宿主机再把请求发送到Lan中;所以docker默认是可以PING通宿主机网络中的各个节点,但是相反,Lan中的节点却无法PING通docker的IP;所以需要就是让网络节点能够把对于docker的请求路由到  docker所在的宿主机(此时宿主机的角色是网关),然后由宿主机将请求发给docker0(网桥),docker0再给docker的网卡。
  下图可以看到,网桥其实是一个连接器,链接的dockerd的网卡以及宿主机的网卡。
      

openvswitch以及docker网络的更多相关文章

  1. docker网络配置方法总结

    docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...

  2. 【转】Docker网络详解及pipework源码解读与实践

    好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-prac ...

  3. Docker网络和容器的通信

    Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界 ...

  4. Docker网络 Weave

    当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的是自己的私有IP地址,不同主机的容器之间进行通讯需要将主机的端口映射到容器的端口上,而且IP地址需要使用主 ...

  5. docker——网络配置

    一.网络启动与配置参数 Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,可以理解为一个软件交换机,它会在挂载其上的接口之间进行数据转发.同时,Docker随 ...

  6. docker网络模式----入门docker的难点

    众所周知,现在docker是轻量级虚拟化的典型代表!这段时间想要建立一个分布式系统,但是手头上主机没那么多,所以使用docker进行虚拟化,但是在使用的过程中对网络这一部分是一直不太理解,特别找了一篇 ...

  7. docker 网络设置概述

    docker有3种网络: 使用命令docker network ls,执行结果如下. NETWORK ID NAME DRIVER SCOPE 82e8822065c7 bridge bridge l ...

  8. Docker系列(五):Docker网络机制(上)

    Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.se ...

  9. Docker 网络详解及 pipework 源码解读与实践

    转载自:https://www.infoq.cn/article/docker-network-and-pipework-open-source-explanation-practice/ Docke ...

随机推荐

  1. libhdfs的配置和使用

    测试环境:centos6.10,hadoop2.7.3,jdk1.8 测试代码:HDFSCSample.c #include "hdfs.h" #include <strin ...

  2. 对正交频分复用OFDM系统的理解

    OFDM系统 正交频分复用OFDM(Orthogonal Frenquency Division Multiplexing)是一种多载波调制技术. 基本思想:在发送端,它将高速串行数据经过串并变换形成 ...

  3. yum 源配置

    在 /etc/yum.repos.d 下建立一个 .repo 文件 vim  yum.repo [cd] name=cd baseurl=file:///run/media/root/RHEL-7.0 ...

  4. P3391 文艺平衡树

    hh 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 ...

  5. vs2010下创建webservice ----第一天(建立项目,以及不连数据库进行加减乘除)

    Visual Studio 2010默认采用的框架为.NET Framework4,在这个框架中已找不到直接创建WebService的模板方式了.但VS2010可以创建WebService是毋庸置疑的 ...

  6. spark学习4(zookeeper3.4集群搭建)

    第一步:zookeeper安装 通过WinSCP软件将zookeeper-3.4.8.tar.gz软件传送到/usr/zookeeper/目录下 [root@spark1 zookeeper]# ch ...

  7. Codeforces Round #395 (Div. 2) C

    题意 : 给出一颗树 每个点都有一个颜色 选一个点作为根节点 使它的子树各自纯色 我想到了缩点后check直径 当<=3的时候可能有解 12必定有解 3的时候需要check直径中点的组成点里是否 ...

  8. <转载>获取运行中的TeamViewer的账号和密码

    #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <iostream> #pragma comment( li ...

  9. android、ipone在文本框中输入文字的不同

    1.android机会输入时会在键盘上先显示,你确定后再填充如文本框 2.ipone机是你输入时就直接填充到文本框,当你选择输入信息时,就会先把文本框的内容清空,在填充选择的文字,这时就会有个问题,如 ...

  10. Android 开发工具(android studio )安装中的问题记录

    第一个问题,下载安装android studio . 由于国内无法通过正常方式访问谷歌官网,所以下载的确是个问题,在我仔细寻找下,发现下面两个网站可以下载: 第一个:http://www.androi ...