浅谈一下本机、服务器、docker-compose 容器之间网络通信

news/2024/12/21 11:39:44/文章来源:https://www.cnblogs.com/pandaxiaowo/p/18620587

一、首先,先区分四个对象,它们分别有自己的网络

1、云服务器上,应用服务容器网络(app,nginx,mysql,redis等)app.net

2、云服务器上,模型服务容器网络(ai服务) 模型网络 ai.net

3、云服务器上:宿主机网络(服务器本机) 服务器本机网络 host.net

4、本机:本地网络 local.net

nginx和app在同一个网络内,nginx映射端口出来,app通过nginx反向代理暴露出来

注意,app没有映射端口出来,本机,以及服务器上宿主机是都访问不到的

二、本机调用生产上服务的一整条链路:

1、本机通过云服务器映射端口的nginx(80:默认开放,容器部署映射出来端口)访问到应用app服务(app.net网络)

2、app要完成接口逻辑,需要访问云服务器上模型容器的服务(ai.net网络),由于两个容器网络不通,所以只能通过模型容器映射容器内端口到宿主机环境(模型容器内网络没有nginx组件),这样app才能访问到模型服务,即相当于应用容器内app服务访问了宿主机上的服务一样

3、故此完成了一次完整的服务链路调用过程

还有两点需要注意:
1)云上应用docker-compose启的,应用服务容器之间网络(app.net)是互通的,直接容器名称互相访问,例如:app替代ip就行了(不能使用localhost,只有在同一个容器才能用)

2)从app服务访问模型容器服务,它们是通过宿主机完成通信的,此时不能再写localhost,要用宿主机内网ip才行

应用服务容器、模型服务容器、宿主机, 它们三个之间不能使用localhost,因为它们是三个相对独立隔离的环境,它们都有各自的localhost网络,并且都是互相独立的

三、服务调用链路图:

以上是我个人的理解,有哪里不合理的,欢迎帮我指出来

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

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

相关文章

习题10.1

import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt def check(data): # 提取数据的第一列和第二列 x = data[:, 0] y = data[:, 1] # 使用statsmodels进行线性回归分析 model = sm.OLS(y, sm.add_constant(x)).fit() # 添加常数项 print(mode…

static修饰成员的特点及static修饰成员变量内存图解-java se进阶 day01

1.static介绍 static是静态的意思,它可以用于修饰成员变量和成员方法2.static的特点1.被static修饰了的成员变量,可以被类中的所有对象所共享 虽然stu02没有给school赋值,但是我们用stu02调用时依旧成立,并且打印了南昌交通学院,因为school被共享了,恰好stu01又为其赋值了…

IIS运行遇到问题

1:打开网站时出现的错误提示2:下载对应的.net core Runtime后正常,如下图所示

【最短路】

【最短路算法系统概述】

【Python逆向】深入Pyd逆向

pyd 文件是编译生成的 Python 扩展模块,是类似 so、dll 的一种 Python 文件。 pyd 文件无法像 pyc文件那样恢复源码,只能通过逆向手段去恢复逻辑。 一、理解pyd文件 1.1 编译pyd 自己编译一个 pyd 保留符号来看。 test.py: import base64 key = [ord(i) for i in "key&…

React之Json编辑器

我们先看下效果,这个白色是不是非常不错?没有太多复杂的功能,就是当一个简洁显示json并且进行编辑的功能接下来是代码部分 import AceEditor from react-ace; import { Button, Modal } from antd; import ./styles.css;// Import ace editor themes and modes import ace-b…

2024 ASP.NET Core 开发者路线图

2024 ASP.NET Core 开发者路线图

OCR实践—PaddleOCR

有个项目需求,对拍摄的问卷图片,进行自动得分统计【得分是在相应的分数下面打对号】,输出到excel文件 原始问卷文件见下图,真实的图片因使用手机拍摄的图片,存在一定的畸变,技术调研 传统方法 传统方法,通过线检测 先对 表格进行矫正【仿射变换】,然后二次线检测 划分出…

Google发布了它所称的“推理”AI模型

Google发布了它所称的“推理”AI模型——但这还处于实验阶段,根据我们简短的测试,显然仍有改进空间。 这个新模型名为Gemini 2.0 Flash Thinking Experimental(名字有点长,确实),可以在Google的AI原型平台AI Studio中使用。模型卡片描述它是“最适合多模态理解、推理和编…

【Python GUI 编程】tkinter :Ttk 组合框 Combobox

在本文中,将介绍如何创建一个 tkinter Combobox 组合框小部件,该小部件允许用户从一组值中选择一个值。 Combobox 组合框小部件是新增的 Ttk 主题小部件,是 Entry 文本框和 Listbox 列表框的组合。除了允许在一组值中选择一个值外,它还允许输入自定义值。 创建组合框 要创建…

【Python GUI 编程】tkinter:Ttk 选项卡 Notebook

在本文中,将介绍如何使用 Tkinter Notebook 小部件创建选项卡。 Notebook 是由 Tkinter Ttk 模块引入的强大小部件。允许开发者创建包含多个选项卡的界面,每个选项卡可以包含不同的内容。 创建 Notebook 小部件,请使用如下构造函数: notebook = ttk.Notebook(master,**kw)添…

在虚拟机里执行protoc报非法指令( Illegal instruction)

问题 在x86虚拟机里编译perfetto的时候遇到执行protoc报非法指令,但是在host上编译的时候并没有这样的问题 原因 虽然虚拟机和宿主机都是同一个指令集架构,但是CPU在一些特殊指令上的支持还是有区别的,如果Host可以,但是虚拟机上不行,可能就是虚拟机CPU不支持某些特性,导…