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

2023-11-07 04:44

本文主要是介绍当zmq 和 docker 都要绑定一个端口时,怎么不修改端口号就能解决冲突?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

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

解决方式

方式一:使用请求响应方式,但是将响应端放置到容器内部。
方拾二:使用主机模式运行docker容器。将容器内使用外部网络。

主机模式运行docker 容器

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

以下是一个示例命令:

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

这篇关于当zmq 和 docker 都要绑定一个端口时,怎么不修改端口号就能解决冲突?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/361330

相关文章

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec