iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Docker容器跨主机通信之:OVS+GRE
  • 921
分享到

Docker容器跨主机通信之:OVS+GRE

容器主机通信 2023-01-31 08:01:06 921人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

由于Docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案OVSOpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使用。OpenVSwichOpenVSwich是一种开源

由于Docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案

OVS

OpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使用。

OpenVSwich

OpenVSwich是一种开源软件,通过软件的方式实现二层交换机功能,专门管理多租赁云计算网络环境,提供虚拟网络中的访问策略、网络隔离、流量监控等。

既然是虚拟交换机,自然与传统的物理交换机有着相同的特性,操作中可以按照理解物理交换机的方式去操作,有助于对虚拟交换机的认识。

GRE隧道

GRE即通用路由协议封装,隧道技术是一种封装技术,将网络层协议(如IP)的数据报文进行封装,使这些封装的数据报文能够在另一个网络层协议中传输。可以看作是一个虚拟点到点连接,所以建立隧道时,要配置好隧道源地址和目的地址。

 

实验环境

操作系统主机主机ip容器网段
ubuntu-16.04.4-server-amd64主机1172.31.15.168172.17.43.1/24
ubuntu-16.04.4-server-amd64主机2172.31.4.143172.17.42.1/24

 

 

 

 

示意图

1.png

 

修改Docker0的网络地址

编辑主机1上的 /etc/docker/daemon.JSON 文件,添加内容:

{ "bip": "172.17.43.1/24" }

 

编辑主机2上的 /etc/docker/daemon.json 文件,添加内容:

{ "bip":"172.17.42.1/24" }

 

重启docker服务

主机1和主机2上均执行如下命令重启docker服务以使修改后的docker0网段生效

systemctl restart docker

 

创建ovs bridge

主机1和主机2 操作:

安装 openvswitch

apt install -y openvswitch-switch

创建bro网桥

ovs-vsctl add-br br0

 

查看bro网桥

复制代码

root@ubuntu:~# ifconfig br0
br0       Link encap:以太网  硬件地址 1e:cc:2c:52:13:42  
          BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:0 (0.0 B)  发送字节:0 (0.0 B)

复制代码

 

设置gre端口

将gre0接口加入到网桥obr0, 远程IP写对端IP(创建一个GRE隧道并添加到网桥中)

主机1 执行:

ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre option:remote_ip=172.31.4.143

注意:172.31.4.143 是主机2的ip地址。

 

主机2 执行:

ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre option:remote_ip=172.31.15.168

注意:172.31.15.168 是主机1的ip地址。

 

主机1和主机2 操作:

# 将br0网桥加入docker0网桥
brctl addif docker0 br0
# 启动br0网桥
ip link set dev br0 up
# 启动docker0网桥
ip link set dev docker0 up
# 添加路由条目
ip route add 172.17.0.0/16 dev docker0

注意:由于主机1和主机2的网络掩码为24,因此16位就可以包含这2个网络了。

 

查看网桥信息

root@ubuntu:~# brctl show
bridge name    bridge id        STP enabled    interfaces
docker0        8000.0242f148614e    no        br0

 

启动容器测试

主机1和主机2 操作:

docker run -itd --name test busybox /bin/sh

 

查看容器信息

主机1 执行:

docker inspect test

输出:

复制代码

...            "Gateway": "172.17.43.1",            "GlobalIPv6Address": "",            "GlobalIPv6PrefixLen": 0,            "IPAddress": "172.17.43.2",
...

复制代码

 

ping 主机2的docker ip

复制代码

root@ubuntu:~# ping 172.17.42.2 -c 2PING 172.17.42.2 (172.17.42.2) 56(84) bytes of data.64 bytes from 172.17.42.2: icmp_seq=1 ttl=63 time=0.505 ms64 bytes from 172.17.42.2: icmp_seq=2 ttl=63 time=0.858 ms--- 172.17.42.2 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.505/0.681/0.858/0.178 ms

复制代码

 

主机2 执行:

ping 主机1的docker ip

复制代码

root@ubuntu:~# ping 172.17.43.2 -c 2PING 172.17.43.2 (172.17.43.2) 56(84) bytes of data.64 bytes from 172.17.43.2: icmp_seq=1 ttl=63 time=1.90 ms64 bytes from 172.17.43.2: icmp_seq=2 ttl=63 time=0.641 ms--- 172.17.43.2 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.641/1.274/1.907/0.633 ms

复制代码

 

 

本文参考链接:

https://blog.csdn.net/xialingming/article/details/83093031


--结束END--

本文标题: Docker容器跨主机通信之:OVS+GRE

本文链接: https://www.lsjlt.com/news/193588.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker容器跨主机通信之:OVS+GRE
    由于docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案OVSOpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使用。OpenVSwichOpenVSwich是一种开源...
    99+
    2023-01-31
    容器 主机 通信
  • 聊聊docker跨主机之间容器通信问题
    目录一、环境信息二、具体实践1.在testa主机上创建docker桥接网络2.在testb主机上创建docker桥接网络3.在testa主机中你自定义的网段选取任意IP地址作为你要启...
    99+
    2024-04-02
  • Docker容器跨主机通信之:直接路由方式
    直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包;此外,如果不同子网之间要进行通信,需要额外的路由机制。 Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效...
    99+
    2023-01-31
    路由 容器 主机
  • Docker容器怎么实现跨主机通信
    本篇内容介绍了“Docker容器怎么实现跨主机通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Docker主机间容器通信的解决方案Do...
    99+
    2023-06-29
  • Docker如何跨主机通信
    今天小编给大家分享一下Docker如何跨主机通信的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。设有三台虚拟机 &n...
    99+
    2023-06-27
  • Docker容器跨主机通信overlay网络的解决方案
    目录一、Docker主机间容器通信的解决方案二、Docker Overlay Network三、使用键值存储搭建Docker主机集群4.1 系统环境4.2 安装Consul4.3 节...
    99+
    2024-04-02
  • docker跨主机通信怎么实现
    要实现Docker跨主机通信,可以使用以下几种方法: 使用Docker的网络模式:可以使用Docker的overlay网络模式来...
    99+
    2023-10-27
    docker
  • 利用overlay怎么实现docker容器间跨宿主机通信
    这期内容当中小编将会给大家带来有关利用overlay怎么实现docker容器间跨宿主机通信,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。overlay网络解析内置跨主机的网络通信一直是Docker备受期待...
    99+
    2023-06-06
  • docker overlay实现跨主机的容器互通的方法
    目录1. docker配置2. 创建注册中心与网络3. 启动容器环境说明 ...
    99+
    2024-04-02
  • docker容器与容器之间怎么通信
    Docker容器与容器之间有多种通信方式,以下是一些常用的方法: 使用Docker网络:Docker提供了多种网络模式,包括桥接...
    99+
    2024-02-29
    docker
  • 常用的跨主机Docker容器互通方法有哪些
    本篇内容主要讲解“常用的跨主机Docker容器互通方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常用的跨主机Docker容器互通方法有哪些”吧!现在提...
    99+
    2024-04-02
  • docker实现跨宿主机的容器之间网络互联
    目录一. 环境介绍二. docker跨主机互联实现说明三. 修改docker0网桥网段3.1 A宿主机10.1.10.1133.2 B宿主机10.1.10.114背景:最近闲来无事,...
    99+
    2023-01-04
    docker 跨宿主机互联 Docker跨宿主机
  • docker容器之间通信的示例分析
    这篇文章将为大家详细讲解有关docker容器之间通信的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。容器之间的通信  # 执行一个容器,并分配一个名字给它 ...
    99+
    2023-06-17
  • 如何理解docker中的网络模式和跨主机通信
    今天就跟大家聊聊有关如何理解docker中的网络模式和跨主机通信,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Docker的四种网络模式Bridge模式当Docker进程启动时,会在...
    99+
    2023-06-05
  • Docker跨主机容器间相互访问的实现
    第一步:创建自定义网络 docker network create --subnet=172.18.0.0/24 docker-br0 备注:这里选取了172.18.0.0网段,也可...
    99+
    2023-01-04
    Docker 跨主机访问 Docker 容器相互访问
  • Docker容器之间的通信的方法实现
    情景:本地已经搭建laradock开发环境(php7.3+mysql5.7),现在想用laradock环境来运行同一个已有项目,但是该项目数据在mysql5.6的docker容器里...
    99+
    2024-04-02
  • Docker跨服务器通信Overlay怎么实现
    本篇内容主要讲解“Docker跨服务器通信Overlay怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker跨服务器通信Overlay怎么实现”吧!场景公司微服务快上线了,微服务都...
    99+
    2023-06-21
  • Docker容器间通信与外网通信的操作
    一 容器间通信 1.容器的网络共享 处于这个模式下的docker容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速通信。 使用于web服务器与应用服务器之间的通...
    99+
    2024-04-02
  • Docker容器与主机网络互通如何实现
    Docker容器与主机网络互通可以通过以下几种方式实现: 使用端口映射:通过在Docker容器启动时使用-p参数将容器内部的端口映...
    99+
    2024-05-07
    Docker
  • docker不同主机之间怎么互通
    要使不同主机上的Docker容器互相通信,有几种方法可以实现: 使用Docker的网络功能:可以创建自定义的网络,然后将不同主机上...
    99+
    2024-04-09
    docker
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作