实现在两台宿主机下的docker container 中实现多机器通讯

news2024/11/26 19:30:09

基于我的实验背景

上位机:ubuntu 20.04 (docker humble 22.04)
下位机:ubuntu 22.04(docker noetic 20.04)

目标:实现在上位机中的docker container 容器的22.04环境去成功远程访问 非同网段的下位机的20.04的container容器

具体的参考链接

参考连接
参考链接
参考链接
参考链接

实现流程

我的下位机再此命名为:sunrise
我的上位机在此命名为:zhaobojun
构建自定义网桥:目的是实现在不同网段的docker 通讯

构建网桥

zhaobojun

#创建网桥
docker network create --driver bridge --ipam-driver default --subnet 192.168.20.0/24 --gateway 192.168.20.1 docker-net-bridge
# 查看网桥
docker network ls 
3fc08758bacc   docker-net-bridge   bridge    local

sunrise

#创建网桥
docker network create --driver bridge --ipam-driver default --subnet 192.168.25.0/24 --gateway 192.168.25.1 docker-net-bridge

构建网桥能够避免修改docker 0 的默认固定的172.17.0.1的网段 我觉得有一定的好处

添加路由规则

zhaobojun

#上位机zhaobojun中添加下位机的路由规则(主机2的IP和网段)
route add -net 192.168.25.0/24 gw 192.168.31.67

sunrise

#创建网桥(在主机2中添加主机1的ip和网段)
route add -net 192.168.20.0/24 gw 192.168.31.105

参考防火墙规则
最终参考文章

添加防火墙规则

请添加图片描述

zhaobojun

#开启路由转发
iptables -P FORWARD ACCEPT

iptables -P FORWARD ACCEPT
iptables -A FORWARD -s 192.168.31.0/24 -j ACCEPT #允许下位机的网关 
#配置上位机zhaobojun的iptables规则
iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -d 192.168.25.0/24 -j MASQUERADE

sunrise

sudo route add -net 192.168.20.0/24  gw 192.168.31.105

sudo iptables -t nat -F POSTROUTING
sudo iptables -A FORWARD -s 192.168.31.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.25.0/24 -d 192.168.20.0/24 -j MASQUERADE

路由持久化

zhaobojun

sudo vim / etc/rc.local
route add -net 192.168.25.0/24 gw 192.168.31.105

sunrise

sudo vim / etc/rc.local
route add -net 192.168.20.0/24 gw 192.168.31.67

每个容器内部需要的net工具包

#安装测试工具
apt-get update
#安装ping工具
apt-get install inetutils-ping -y
#安装ip查看工具
apt-get install net-tools -y
#通过nmtui去配置网桥是很好的方法 ——推荐
sudo nmtui
然后添加网桥即可

zhaobojun
请添加图片描述sunrise
请添加图片描述最后成功通讯的结果

请添加图片描述
超宝藏博客

# 查看是否开启ip转发,如果为1则开启
 cat /proc/sys/net/ipv4/ip_forward

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

远程控制软件:探究云计算和人工智能的融合

在数字化时代,远程控制工具已成为我们工作与生活的重要部分。用户能够通过网络远程操作和管理另一台计算机,极大地提升了工作效率和便捷性。随着人工智能(AI)和云计算技术的飞速发展,远程控制工具也迎来了新的发展机遇…

ISUP协议视频平台EasyCVR萤石设备视频接入平台银行营业网点安全防范系统解决方案

在金融行业,银行营业厅的安全保卫工作至关重要,它不仅关系到客户资金的安全,也关系到整个银行的信誉和运营效率。随着科技的发展,传统的安全防护措施已经无法满足现代银行对于高效、智能化安全管理的需求。 EasyCVR视频汇聚平台以…

C#基础上机练习题

21.计算500-800区间内素数的个数cn,并按所求素数的值从大到小的顺序排列,再计算其间隔加、减之和,即第1个素数-第2个素数第3个素数-第4个素数第5个素数……的值sum。请编写函数实现程序的要求,把结果cn和sum输出。 22.在三位整数…

ubuntu24挂载硬盘记录

1、显示硬盘及所属分区情况。在终端窗口中输入如下命令: sudo fdisk -l 找到自己硬盘的分区 我的地址/dev/sda 2、显示硬盘及所属分区情况。在终端窗口中输入如下命令,格式化自己硬盘: sudo mkfs -t ext4 /dev/sda 3、在终端窗口中输入如下…

函数类型注释和Union联合类型注释

函数类型注释格式(调用时提示输入参数的类型): )def 函数名(形参名:类型,形参名:类型)->函数返回值类型: 函数体 Union联合类型注释(可注释多种类型混合的变量)格式: #先导入模块 from typing import…

【Python】分割秘籍!掌握split()方法,让你的字符串处理轻松无敌!

在Python开发中,字符串处理是最常见也是最基础的任务之一。而在众多字符串操作方法中,split()函数无疑是最为重要和常用的一个。无论你是Python新手,还是经验丰富的开发者,深入理解并熟练运用split()方法,都将大大提升…

DICOM图像深入解析:为何部分DR/CR图像默认显示为反色?

概述 在数字医学影像处理中,CR(Computed Radiography,计算机放射摄影)和DR(Digital Radiography,数字放射摄影)技术广泛应用于医疗影像获取与分析。然而,临床实践中常常遇到这样一个问题:部分CR/DR图像在默认打开时呈现为反色(即负片效果),需手动反色后才能正常阅片…

正则表达式灾难:重新认识“KISS原则”的意义

RSS Feed 文章标题整理 微积分在生活中的应用与思维启发 捕鹿到瞬时速度的趣味探索 微积分是一扇通往更广阔世界的门,从生活中学习思维的工具。 数据库才是最强架构 你还在被“复杂架构”误导吗? 把业务逻辑写入数据库,重新定义简单与效率。…

详解 【AVL树】

AVL树实现 1. AVL的概念AVL树的实现2.1 AVL树的结点结构2.2 AVL树的插入2.2.1 AVL树的插入的一个大概操作:2.2.2 AVL树的平衡因子更新2.2.3 平衡因子的停止条件2.2.4 再不考虑旋转的角度上实现AVL树的插入 2.3 旋转2.3.1 旋转的原则2.3.2 右单旋2.2.3 右单旋代码实现…

go语言range的高级用法-使用range来接收通道里面的数据

在 Go 语言中,可以使用 for ... range 循环来遍历通道(channel)。for ... range 循环会一直从通道中接收值,直到通道关闭并且所有值都被接收完毕。 使用 for ... range 遍历通道 示例代码 下面是一个使用 for ... range 遍历通…

计算机网络 | 7.网络安全

1.网络安全问题概述 &#xff08;1&#xff09;计算机网络面临的安全性威胁 <1>计算机网络面临的完全性威胁 计算机网络面临的两大类安全威胁&#xff1a;被动攻击和主动攻击 被动攻击 截获&#xff1a;从网络上窃听他人的通信内容。主动攻击 篡改&#xff1a;故意篡改…

Unity——使用Unity制作BIM全景视频、图片

一、说明&#xff1a; 最近在研究使用threejs加载全景视频视图BIM视图的联动对比&#xff0c;需要制作BIM模型场景下测试用的全景视频demo。 二、生成方法 全景视频的可以使用全景相机拍摄&#xff0c;也可以使用三维引擎渲染生成。 BIM建模引擎Revit中可以使用渲染插件生成…

echarts4r 教程2:Advanced

❝ 写在前面 本文为 R 语言 echarts4r 包的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。软件可能随时更新&#xff0c;建议配合官方文档一起阅读。推荐先按顺序阅读往期内容&#xff1a; 1. echarts4r 教程1&#xff1a…

JSON 性能测试 - WastJson 性能也很快

WAST 是一个高性能 Java 工具集库包&#xff0c;包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎. WastJson 无论是小中大文本各种数据类型等性能都没有明显的短板&#xff0c;除了推广外可以说是六边形战士&#xff0c;更多测试参考 wast-jmh-test: wast性能测试 (并非所…

DICOM图像处理:深入解析DICOM彩色图像中的Planar配置及其对像素数据解析处理的实现

引言 在DICOM(Digital Imaging and Communications in Medicine)标准中,彩色图像的存储与显示涉及多个关键属性,其中**Planar Configuration(平面配置)**属性(标签 (0028,0006))尤为重要。当遇到彩色DICOM图像在浏览时被错误地分割为9张小图,而实际应显示为一…

django authentication 登录注册

文章目录 前言一、django配置二、后端实现1.新建app2.编写view3.配置路由 三、前端编写1、index.html2、register.html3、 login.html 总结 前言 之前&#xff0c;写了django制作简易登录系统&#xff0c;这次利用django内置的authentication功能实现注册、登录 提示&#xff…

数字图像处理(4):FPGA中的定点数、浮点数

&#xff08;1&#xff09;定点数&#xff1a;小数点固定在数据的某一位置的数&#xff0c;可以分为定点整数和定点小数和普通定点数。定点数广泛应用于数字图像处理&#xff08;图像滤波、图像缩放&#xff09;和数字信号处理&#xff08;如FFT、定点卷积&#xff09;中。 定…

uniapp接入高德地图

下面代码兼容安卓APP和H5 高德地图官网&#xff1a;我的应用 | 高德控制台 &#xff0c;绑定服务选择《Web端(JS API)》 /utils/map.js 需要设置你自己的key和安全密钥 export function myAMap() {return new Promise(function(resolve, reject) {if (typeof window.onLoadM…

三种蓝牙架构实现方案

一、蓝牙架构方案 1、hostcontroller双芯片标准架构 手机里面包含很多SoC或者模块&#xff0c;每颗SoC或者模块都有自己独有的功能&#xff0c;比如手机应用跑在AP芯片上&#xff0c;显示屏&#xff0c;3G/4G通信&#xff0c;WiFi/蓝牙等都有自己专门的SoC或者模块&#xff0…

下载并安装Visual Studio 2017过程

一、下载 1、下载链接 下载链接&#xff1a;官方网址 先登录 往下滑找到较早的下载 2、进行搜索下载 或者直接点击&#x1f517;网站跳转 3、确认系统信息进行下载 二、安装 下载完成后右键使用管理员身份运行 1、点击同意后安装 2、若报错—设置失败 打开控制面板-&g…