openvswitch以及docker网络
修改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网络的更多相关文章
- docker网络配置方法总结
docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...
- 【转】Docker网络详解及pipework源码解读与实践
好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-prac ...
- Docker网络和容器的通信
Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界 ...
- Docker网络 Weave
当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的是自己的私有IP地址,不同主机的容器之间进行通讯需要将主机的端口映射到容器的端口上,而且IP地址需要使用主 ...
- docker——网络配置
一.网络启动与配置参数 Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,可以理解为一个软件交换机,它会在挂载其上的接口之间进行数据转发.同时,Docker随 ...
- docker网络模式----入门docker的难点
众所周知,现在docker是轻量级虚拟化的典型代表!这段时间想要建立一个分布式系统,但是手头上主机没那么多,所以使用docker进行虚拟化,但是在使用的过程中对网络这一部分是一直不太理解,特别找了一篇 ...
- docker 网络设置概述
docker有3种网络: 使用命令docker network ls,执行结果如下. NETWORK ID NAME DRIVER SCOPE 82e8822065c7 bridge bridge l ...
- Docker系列(五):Docker网络机制(上)
Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.se ...
- Docker 网络详解及 pipework 源码解读与实践
转载自:https://www.infoq.cn/article/docker-network-and-pipework-open-source-explanation-practice/ Docke ...
随机推荐
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- Go 外部排序-网络版
目录结果 main.go package main import ( "NetworkSort/pipeline" "fmt" "os" & ...
- 淘宝分类常见---部分显示和全部显示的js效果
需求就是,点击“更多按钮”,显示全部的分类详情,再次点击,显示部分分类. 展开: 收起: 结构: <div class="SubBox" id="SubBox&qu ...
- JavaScript实现的功能
1.js事件阻止冒泡的应用 1)问题描述: 单机除了这两个元素,触发事件,: 可用阻止事件冒泡 2)解决方法: $('body').click(function(e){ $('#searchTree' ...
- 进程【TLCL】
ps命令 ps x 加上 "x" 选项(注意没有开头的 "-" 字符),告诉 ps 命令,展示所有进程,不管它们由什么 终端(如果有的话)控制. 在 TTY 一 ...
- R语言笔记006——分组获取描述性统计量
方法一:使用aggregate()分组获取描述性统计量 aggregate(mtcars[vars],by=list(am=mtcars$am),mean) aggregate(mtcars[vars ...
- contenteditable支持度
contenteditable attribute (basic support) - Working Draft Global user stats*: Support: 86.71% Partia ...
- mysql数据简单去重
我有一个 foo 表,定义了如下几个字段:id / a / b,其中 id 是主键,a,b 原本应该具有唯一性, 但因为程序 bug 导致 a,b 内容有重复,现在我要在 a,b 上加唯一索引,请问如 ...
- spring boot: 组合注解与元注解
package ch2.annotation; //target/elementType用来设定注解的使用范围 import java.lang.annotation.ElementType; imp ...
- ural 2019 Pair: normal and paranormal
2019. Pair: normal and paranormal Time limit: 1.0 secondMemory limit: 64 MB If you find yourself in ...