当前位置: 首页 > news >正文

Docker容器间链路管理

Docker容器是一个轻量级的、可移植的软件打包技术,它允许开发者将应用程序及其依赖项打包到一个独立的容器中,然后发布到任何支持Docker的环境中运行。容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。

可以将docker中的每个容器当成是一个房间里的隔断,如果有两套不同的应用需要部署,你可以选择开设两台虚拟机来运行他们,但是成本太高,服务要求过高。而docker的出现则可以有效的解决这一系列问题,通过轻量的部署来完成多套环境的部署。

其网络关系,容器间链路连接则是容器间通信的重要问题。

Docker的四种网络模式:

1.bridge –network bridge 为每一个容器分配、设置 ip ,并将容器连接到 docker0 虚拟网桥上,这也是默认网络模式,容器之间可以通过IP或者容器名称互相通信,但默认情况下与宿主机网络隔离。

2.host –network host 容器不会创建自己的网卡,配置 ip 等,而是使用宿主机的 ip 和端口。这种模式下容器的网络性能较好,但安全性较低,因为容器可以直接访问宿主机的网络资源。

3.container –network 容器名称或id 新创建的容器不会创建自己的网卡和配置自己的ip,而是和一个指定的容器共享ip、端口范围。这意味着两个容器将有相同的网络配置,包括IP地址和端口范围。通常用于需要紧密网络交互的场景,如分布式系统中的多个服务实例。

4.none –network none 容器有独立的Network namespace,但并没有对其进行任何网络设置。在None模式下,Docker不会为容器配置任何网络设备,容器仅有一个回环接口(lo)。

自定义网络
Docker允许用户创建自定义的网络,以满足特定的网络拓扑和隔离需求。
可以通过docker network create命令创建网络,并指定网络类型(如bridge)、子网、网关等参数。

docker network create

自定义网络可以实现容器间的服务发现,通过容器名称自动解析IP地址。
端口映射
使用-p标志可以在容器和宿主机之间映射端口。
格式为-p 宿主机端口:容器端口,这使得外部可以通过宿主机的端口访问容器内的服务。
-P(大写P)标志会随机映射所有公开的容器端口到宿主机的一个高阶端口上。
网络配置文件
Docker守护进程的网络配置存储在/etc/docker/daemon.json文件中。
修改此文件后,可能需要使用systemctl daemon-reload命令刷新systemd配置,并重启Docker服务以应用新配置。

systemctl daemon-reload

常用命令

查看网络

docker network ls

创建网络

#基础用法

网络名称

docker network create

#创建网络时是可以添加一系列参数的:
 

–driver:驱动程序类型–gateway:主子网的IPV4和IPV6的网关–subnet:代表网段的CIDR格式的子网mynet:自定义网络名称
docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 mynet

不指定任何选项的时候默认的–driver(网络模式)也是bridge(桥接)但是gateway和subnet会自动生成

查看网络数据源

docker network inspect 网络名称

将容器连接到指定网络

docker network connect 网络名称 容器名称

断开容器的网络

docker network disconnect 网络名称 容器名称

删除所有不在使用的网络

docker network prune

删除一个或多个网络

docker network rm 网络名称

使用示例

创建容器时挂载网络创建一个桥接类型的网络

docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 myNet1

创建并运行容器时指定网络

docker run --name containerName -p 80:80 -d --network myNet1 myNginx

不想用时可以断开网络

docker network disconnect myNet1 myNginx

容器已存在时连接到新网络创建一个桥接类型的网络

docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 myNet2

为容器连接新的网络执行后

myNginx容器的网络就变成了myNet2

docker network connect myNet2 myNginx

不想用时可以断开网络

docker network disconnect myNet2 myNginx

容器与容器间访问网络
容器之间可以通过以下几种方式互相访问:

1、默认桥接网络(docker0):

Docker默认为每个容器分配一个IP,并将它们连接到一个名为docker0的虚拟网桥上。
容器之间可以通过这些IP地址直接通信,也可以使用容器名作为主机名进行DNS解析。
如果要限制容器间的访问,可以创建自定义网络并控制网络的访问权限。


2、自定义网络:

使用docker network create命令创建自定义网络,可以选择桥接、overlay等多种网络类型。
可以为网络指定子网、网关等,并通过--opt添加额外的网络配置选项。
将容器连接到同一自定义网络的容器之间可以透明地通信,不受默认网络的限制。


3、端口映射:

虽然通常用于容器与宿主机之间的通信,但理论上可以通过宿主机作为中介,实现容器间通信。
即使不在同一网络的容器,也可以通过映射到宿主机的端口来间接访问其他容器的服务。

相关文章:

Docker容器间链路管理

Docker容器是一个轻量级的、可移植的软件打包技术,它允许开发者将应用程序及其依赖项打包到一个独立的容器中,然后发布到任何支持Docker的环境中运行。容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。 可以将…...

python画图|在三维空间的不同平面上分别绘制不同类型二维图

【1】引言 前序已经完成了基础的二维图和三维图绘制教程探索,可直达的链接包括但不限于: python画图|3D参数化图形输出-CSDN博客 python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 在学习过程中,发现一个案例&#xff1…...

与ai一起作诗(《校园清廉韵》)

与ai对话犹如拷问自己的灵魂,与其说ai助力还不如说在和自己对话。 (笔记模板由python脚本于2024年10月19日 19:18:33创建,本篇笔记适合喜欢python和诗歌的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&…...

python matplotlib

一、图形函数 函数名称描述Bar绘制条形图Barh绘制水平条形图Boxplot绘制箱型图Hist绘制直方图his2d绘制2D直方图Pie绘制饼状图Plot在坐标轴上画线或者标记Polar绘制极坐标图Scatter绘制x与y的散点图Stackplot绘制堆叠图Stem用来绘制二维离散数据绘制(又称为火柴图&…...

秋招面试题记录_半结构化面试

c八股(可能问的多一点) 1.简单说说C11语法特性 答: 1.auto以及decltype自动类型推导,避免手动声明复杂类型,减少冗长代码提升了可读性和安全性。 2.智能指针 自动释放内存 (具体说说) 有shared和unique 差异主要体现在所有权、内存开销、…...

Java项目-基于springboot框架的疫苗接种管理系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...

Android 12.0进程保活白名单功能实现

在Android 12.0系统中,实现进程保活白名单功能是为了确保某些重要的应用程序即使进入后台也能长时间保持运行状态,不被系统自动杀死。这一功能的实现涉及多个核心类和文件,以下是具体的实现步骤和核心功能分析: 一、实现步骤 …...

vscode 功能、设置备忘

2024年10月18日 crtl p 按文件名搜索,输入> 开始搜索命令 设置文件显示过滤和搜索过滤: ctrlp 输入 >settings 选择Preferences:Open Settings(UI),搜索exclude 配置 Files Exclude 修改显示过滤 配置 Search Exclude 修…...

错误 Failed to connect to xx.xx.xx.xx port xx: No route to host

Failed to connect to xx.xx.xx.xx port xx: No route to host 系统环境: Oracle Cloud(OCI)Ubuntu20.4 问题: 连接本机IP正常访问,连接内网ip可正常访问,但连接外网IP报错:Failed to conne…...

Redis环境的搭建

Redis环境的搭建可以分为Linux系统和Windows系统两种情况。 一、Linux系统下Redis的搭建 1. 安装前准备 确保Linux系统已安装GCC环境,可以使用yum install gcc-c命令安装。下载Redis安装包,例如redis-6.2.6.tar.gz,并将其上传到Linux服务器…...

Git Push(TODO)

最近经常碰到GIT push不上去的问题。到处求人解决也真是尴尬,想自己看看,所以刚刚在github上建了一个仓,试了下。结果如下: 暂时可能还不行,因为数据都是加密的,没法看到具体GIT的交互信息。。。 后面再想办…...

Java工具类--截至2024常用http工具类分享

1. Apache HttpClient Apache HttpClient是一个功能强大的、灵活的HTTP客户端,用于发送请求和接收响应。它支持HTTP/1.1和HTTP/2协议,并且提供了丰富的配置选项。适用于需要高度可配置性和扩展性的场景。 2.OkHttp OkHttp是一个高效的HTTP客户端&…...

C#学习笔记(五)

C#学习笔记(五) 第 三 章 基本语句以及语法一、控制台的基本语句使用1. 方法重载2. 输入输出3.字符串格式化 二、赋值运算符、算数运算符、比较运算符三、数据类型转换常用方法使用、比较和选择1. 自动类型转换(隐式转换)2. 强制类型转换2.1 数值类型之间…...

视频云存储/音视频流媒体视频平台EasyCVR视频汇聚平台在欧拉系统中启动失败是什么原因?

视频监控/视频集中存储/磁盘阵列EasyCVR视频汇聚平台具备强大的拓展性和灵活性,支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等,这为其在各种复杂环境下的部署提供了便利。 安防监控EasyCVR视频汇聚平…...

spring源码中的,函数式接口,注解@FunctionalInterface

调用方 /org/springframework/beans/factory/support/AbstractBeanFactory.java:333sharedInstance getSingleton(beanName, () -> {try {return createBean(beanName, mbd, args);}catch (BeansException ex) {// Explicitly remove instance from singleton cache: It mi…...

分布式系统中的Session共享:实现跨服务器的用户登录信息同步

引言 在现代Web应用中,分布式架构已经成为主流。随着业务规模的扩大,单台服务器往往难以承载所有的请求,因此需要多台服务器协同工作来提供服务。然而,在这种分布式环境中,如何确保用户的登录状态能够在不同的服务器之…...

【LeetCode每日一题】——1588.所有奇数长度子数组的和

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 1588.所有奇数长度子数组的和 …...

自定义多级联动选择器指南(uni-app)

多端支持:可以运行在H5、APP、微信小程序还是支付宝小程序,都可以轻松使用改组件。自定义配置:您可以根据需要配置选择器的级数,使其适应不同的数据结构和用例。无限级联:此组件支持无限级联选择,使您能够创…...

RHCE笔记-SSH服务

一.对称加密与非对称加密 1.1对称加密 1. 原理 对称加密是指加密和解密使用相同的密钥。也就是说,发送方和接收方在通信之前需要共享一个秘密密钥,使用这个密钥对数据进行加密和解密。 2. 常见算法 AES (Advanced Encryption Standard):…...

java实现文件分片上传并且断点续传

文章目录 什么是断点续传后端实现JAVA实现大文件分片上传断点续传 什么是断点续传 用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用户从上传断线的地方继续传…...

auto-rednote:自动化信息整理工具的设计原理与实战应用

1. 项目概述与核心价值 最近在整理个人笔记和知识库时,我遇到了一个几乎所有内容创作者和开发者都会头疼的问题:如何高效地将散落在各处的、格式不一的“红色笔记”(比如微信收藏、网页剪藏、临时备忘录)自动整理成结构化的、可检…...

从App Inventor到数据解析:打造一个专属的Android蓝牙温湿度监测App(适配HC-05+Arduino)

从零构建Android蓝牙温湿度监测系统:App Inventor与Arduino实战指南 在物联网技术快速普及的今天,将传感器数据可视化呈现已成为许多创客和教育场景中的常见需求。本文将以DHT-11温湿度传感器为核心,通过HC-05蓝牙模块搭建Arduino与Android设…...

Display Driver Uninstaller:显卡驱动问题的终极解决方案

Display Driver Uninstaller:显卡驱动问题的终极解决方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstall…...

Android Studio报错救星:一招永久优化Gradle下载,告别‘Could not install’

Android Studio开发环境深度优化:根治Gradle下载问题的系统方案 每次新建Android项目时,看着进度条卡在"Downloading Gradle"动弹不得,你是否也经历过这种绝望?Gradle下载失败堪称Android开发者入门的第一道坎&#xff…...

局域网监控软件评测:从数据主权视角看企业效能工具的取舍

很多管理者在巡视办公室时,看到员工手指在键盘上飞速跳动,屏幕上代码或表格交织,心中却往往悬着一块石头:他们是在攻克项目难关,还是在处理私人兼职?这种管理上的“黑盒状态”,不仅是效率的损耗…...

构建本地AI编码助手分析工具:数据监控与可视化实践

1. 项目概述:一个本地优先的AI编码助手分析工具如果你和我一样,日常开发重度依赖Cursor、Windsurf、Zed这些内置了AI能力的编辑器,或者频繁使用GitHub Copilot、Claude Code这类AI编码助手,那你肯定有过这样的困惑:这些…...

一文搞懂JTT1078:车载视频监控协议科普+开发入门

之前聊过JTT808,很多朋友私信问我,车载监控里的视频画面、语音对讲靠什么实现的?答案很简单——JTT1078协议。如果说JTT808是车载监控的“骨架”,负责定位和基础状态传输,那JTT1078就是“神经”,专门管音视…...

HDiffPatch实际应用案例:APK文件差异化和Android应用商店优化

HDiffPatch实际应用案例:APK文件差异化和Android应用商店优化 【免费下载链接】HDiffPatch a C\C library and command-line tools for Diff & Patch between binary files or directories(folder); cross-platform; runs fast; create small delta/differentia…...

AI编程助手集成DRPC技能包:无缝查询区块链数据的实践指南

1. 项目概述:为AI编程助手解锁区块链数据能力 如果你正在使用Claude Code、Cursor这类AI编程助手,并且需要频繁查询区块链上的数据——比如检查钱包余额、追踪交易状态、读取智能合约信息,那么你很可能已经厌倦了在代码编辑器和区块链浏览器之…...

别再死记硬背段码了!用Python脚本自动生成数码管显示码表(支持共阳/共阴)

用Python解放双手:动态生成数码管段码的工程实践 数码管作为电子设计中最基础的显示元件之一,其驱动原理看似简单却暗藏玄机。传统开发流程中,工程师需要反复查阅手册或记忆十六进制段码,这种低效模式在复杂项目中将消耗大量时间。…...