当zmq 和 docker 都要绑定一个端口时,怎么不修改端口号就能解决冲突?

问题描述

docker容器中的程序需要和外部进行通讯,但是当作为请求方向 响应方发送数据时,外部的进程因为需要绑定的端口被docker占用而绑定失败。

解决方式

方式一:使用请求响应方式,但是将响应端放置到容器内部。

方拾二:使用主机模式运行docker容器。将容器内使用外部网络。

主机模式运行docker 容器

要使用主机模式运行Docker容器,你可以在运行Docker命令时使用--network=host选项。这将使容器共享主机的网络命名空间,意味着容器将直接使用主机的网络,而不是虚拟的网络。

以下是一个示例命令:

bash 复制代码
docker run --network=host -it zmq_demo_v2.1 /bin/bash

在这个例子中,--network=host选项告诉Docker使用主机网络模式运行容器。这样,容器内的应用可以直接绑定到主机的端口,而不需要通过端口映射。

请注意,使用主机网络模式可能会带来安全风险,因为它允许容器访问主机的所有网络资源。因此,你应该只在你完全信任的容器上使用这种模式。

补充

在测试时,如果Linux系统对host的关键字解释有多个的时候,会出现,docker 容器启动时内外部端口映射使用的外部端口号,外部程序还可以绑定,但是双方通信无响应,不能送达。

检查方式:Linux查看host 文件

命令行界面输入:cat /etc/hosts,如果有多个,可以注释掉 127.0.0.1以外的内容行。更新配置之后就可以解决问题了。


分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

相关推荐
绘梨衣54721 分钟前
Docker+FastAPI+MySQL 项目部署报错汇总
mysql·docker·fastapi
cui_ruicheng33 分钟前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
ACP广源盛139246256732 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
百年੭ ᐕ)੭*⁾⁾3 小时前
docker使用neo4j
docker·容器·neo4j
峥无3 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
码云数智-大飞3 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Harvy_没救了5 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信5 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
2401_873479406 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩6 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发