docker容器间基于bridge双向通信

前面介绍了通过link实现容器间的单向通信:

docker容器间基于Link单向通信-CSDN博客

情景概述

通过前面已经知道了设置link来达到容器间通过容器名称双向通信,那是不是可以通过每个容器都设置link来达到双向通信,这种方式实现起来太麻烦,有更为简单的实现方式,就是通过bridge网桥的方式来实现多组容器之间的双向通信。

什么是网桥?

网桥是一个虚拟网卡,是docker与外界通信必不可少的组件。是完全虚拟出来的一个网卡。

网桥的作用?

网桥的作用有两个:

1.容器与容器之间通信,需要用到网桥。

2.docker环境与外部环境进行通信(比如在某个容器内容去ping www.baidu.com),其原理是在容器中通过发包的方式,传递给物理机网卡,物理机网卡将请求发送出去,再通过网桥把数据传送回docker中。网桥在此就充当了docker环境与物理机之间的通信员。

基于bridge网桥实现容器间双向通信

自定义一个全新的网桥,只要把docker中的容器绑定到网桥上,那么跟这个网桥绑定的所有的容器都可以互联互通。

下面通过具体的操作,来演示如果通过新建网桥并将多个容器加入网桥。

1.查看所有可用的网络服务

docker network ls

 可以看到,有一个name为bridge的网桥,在每一个docker中,都会默认有一个网桥。

2.创建一个新的网桥

docker network create -d bridge my-bridge

3.再次查询可用网络服务

可以看到刚才自行创建的名称为my-bridge的网桥。

4.创建两个新的容器,容器名称为c1、c2

docker run --name c1 -d centos sleep 1d

docker run --name c2 -d centos sleep 1d

5.查看容器信息

看到新创建的两个容器。

6.将c1和c2两个容器都添加到网桥my-bridge中

docker network connect my-bridge c1

docker network connect my-bridge c2

my-bridge是自定义的网桥名称,c1、c2是容器名称。

7.根据容器编号,查看容器的详细信息

docker inspect 92d40aa89c00

可以看到在c1容器中有关网桥的信息,在网桥中也有一个ip地址。

当看到容器里面有自定义网桥的信息时,就说明已经将容器加入到网桥中了。

8进行验证

在c1容器内部,ping c2容器。

进入到c1容器中:

docker exec -it ab2d156889f8 /bin/bash

ping c2 

是可以ping通的,同理在c2容器内部ping c1容器,也是可以的。

总结:只要把容器加入到同一个网桥中,就可以实现这些容器之间的互联互通。

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

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

相关文章

前端如何判断多个请求完毕

在前端开发中,经常会遇到需要同时发起多个异步请求,并在所有请求都完成后再进行下一步操作的情况。 这里有几个常用的方法来实现这一需求: 使用 Promise.all() Promise.all() 方法接收一个 Promise 对象的数组作为参数,当所有的…

云备份项目--服务端编写

文章目录 7. 数据管理模块7.1 如何设计7.2 完整的类 8. 热点管理8.1 如何设计8.2 完整的类 9. 业务处理模块9.1 如何设计9.2 完整的类9.3 测试9.3.1 测试展示功能 完整的代码–gitee链接 7. 数据管理模块 TODO: 读写锁?普通锁? 7.1 如何设计 需要管理…

什么是打流,怎么用iperf3打流

什么是打流 在网络安全和黑灰产领域,“打流”具有不同的含义,常用于形容通过技术手段制造流量假象或发起流量攻击。 流量攻击(DDoS)中的“打流”: “打流”指向目标服务器或网络发起 大规模的数据请求,造…

exam0-试卷整理

exam0-试卷整理 2010,2013是梦开始的地方,大概率会出原题的 2010 2013 2015 大题 manchester RIP更新 说出ISO与TCP/IP模型的相同点和不同点(8分) 相似: 两者都有层次,网络专业人员都需要知道二者&a…

数据挖掘入门介绍及代码实战

什么是数据挖掘? 数据挖掘(Data Mining)是从大量数据中通过算法和技术提取有价值知识的过程,常被称为“从数据中发现知识”(KDD,Knowledge Discovery in Databases)。它包括从数据库中发现隐藏…

ACL---访问控制列表---策略

在路由器流量流入或者流出的接口上匹配流量,之后执行设定好的动作---permit(允许)deny(拒绝) 1.访问控制: 在路由器流量流入或者流出的接口上匹配流量,之后执行设定好的动作---permit&#xf…

element输入框及表单元素自定义前缀

如图所示&#xff1a; <el-input class"custom-input" placeholder"请输入" prefix-icon"prefix" v-model"form.name" clearable></el-input> :deep(.custom-input) {.el-input__icon {display: inline-block;width: 40…

C#调用Lua

目录 xLua导入 打包工具导入 单例基类导入与AB包管理器导入 Lua解析器 文件加载与重定向 Lua解析器管理器 全局变量获取 全局函数获取 对于无参数无返回值 对于有参数有返回值 对于多返回值 对于变长参数 完整代码 List与Dictionary映射Table 类映射Table 接口映射…

第13章 汇编语言--- 实践项目:简单的计算器

汇编语言是一种低级编程语言&#xff0c;它几乎是一对一地对应于计算机的机器码指令。编写汇编代码时&#xff0c;程序员需要直接处理硬件资源如寄存器和内存地址。下面我将为你概述如何创建一个简单的计算器程序&#xff0c;并提供一些伪代码作为示例。 项目目标 设计一个简…

【能用】springboot集成netty,解码器处理数据过长的问题

netty解码器处理数据过长的问题 处理数据过长的详细流程 当第一次 decode 调用时&#xff0c;如果数据不完整&#xff0c;decode 方法会直接返回&#xff0c;Netty 会保留 ByteBuf 中的数据。后续数据到达时&#xff0c;会再次调用 decode 方法&#xff0c;ByteBuf 会累积新到…

渗透测试-非寻常漏洞案例

声明 本文章所分享内容仅用于网络安全技术讨论&#xff0c;切勿用于违法途径&#xff0c;所有渗透都需获取授权&#xff0c;违者后果自行承担&#xff0c;与本号及作者无关&#xff0c;请谨记守法. 此文章不允许未经授权转发至除先知社区以外的其它平台&#xff01;&#xff0…

Python下载包缓慢时怎么修改镜像源

前言 在使用Python下载第三方包时&#xff0c;有时会比较缓慢&#xff0c;与Linux环境中下载软件一样可以替换软件源一样&#xff0c;Python下载源也可以进行修改&#xff0c;因为总是记不住镜像地址&#xff0c;特此记录一下。 常用镜像 豆瓣镜像&#xff1a; https://pypi.…

df.groupby(pd.Grouper(level=1)).sum()

df.groupby(pd.Grouper(level1)).sum() 在 Python 中的作用是根据 DataFrame 的某一索引级别进行分组&#xff0c;并计算每个分组的总和。具体来说&#xff1a; df.groupby(...)&#xff1a;这是 pandas 的分组操作&#xff0c;按照指定的规则将 DataFrame 分组。 pd.Grouper(…

CentOS修改docker镜像存储位置并进行数据迁移

在 CentOS 上修改 Docker 镜像存储位置并进行数据迁移是一个常见的需求。以下是一个详细的步骤指南&#xff0c;帮助你完成这个任务。 1. 停止 Docker 服务 首先&#xff0c;确保 Docker 服务已经停止&#xff0c;以避免在迁移过程中出现数据损坏。 sudo systemctl stop doc…

node.js之---事件循环机制

事件循环机制 Node.js 事件循环机制&#xff08;Event Loop&#xff09;是其核心特性之一&#xff0c;它使得 Node.js 能够高效地处理大量并发的 I/O 操作。Node.js 基于 非阻塞 I/O&#xff0c;使用事件驱动的模型来实现异步编程。事件循环是 Node.js 实现异步编程的基础&…

基于深度学习的视觉检测小项目(二) 环境和框架搭建

一、环境和框架要求 SAM的环境要求&#xff1a; Python>3.7 PyTorch>1.7 torchvision>0.8 YOLO V8的环境要求&#xff1a;YOLO集成在ultralytics库中&#xff0c;ultralytics库的环境要求&#xff1a; Python>3.7 PyTorch>1.10.0 1、确定pytorch版本…

MySQL 06 章——多表查询

多表查询&#xff0c;也称为关联查询&#xff0c;是指两个表或多个表一起完成查询操作 前提条件&#xff0c;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段的。这个关联字段可能建立了外键&#xff0c;也可能没…

ubuntu初始配置

ubuntu初始配置 vm下ubuntu安装vmtools安装常用工具ubuntu终端美化安装ssh使用apt安装时出现错误解决办法 vm下ubuntu安装vmtools //安装vmtools sudo apt-get install open-vm-tools //桌面组件提供了更好的集成体验&#xff0c;包括拖放文件和共享剪贴板等功能 sudo apt-get…

Web前端基础知识(五)

盒子模型 盒子模型是CSS中一种常用于布局的基本概念。描述了 文档中的每个元素都可以看成是一个矩形的盒子&#xff0c;包含了内容、内边距、文本边距、外边距。 ---------------------------------------------------------------------------------------------------------…

人工智能之机器学习算法

所有的机器学习算法都是要优化的&#xff0c;优化的必要条件是确定优化的目标函数(损失函数)&#xff0c;目标函数是根据实际问题(数据)转成的数学公式。 一.线性回归原理推导 &#xff08;1&#xff09;回归问题概述 在机器学习的有监督算法中&#xff0c;分类与回归二种情…