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

Docker:WARNING: Published ports are discarded when using host network mode 解决方法

在Docker中,使用主机网络模式(host network mode)时,容器将共享主机的网络命名空间,这意味着容器将直接使用主机的网络接口和端口。因此,当你尝试通过Docker的发布端口功能(publish a port)将容器的端口映射到主机时,实际上不会发生任何映射,因为容器已经直接使用主机的网络,所以不需要进行端口映射。

解决方法:

如果你需要将容器端口映射到主机端口,你应该使用桥接模式(bridge mode)而不是主机网络模式。桥接模式是Docker的默认网络模式,在这种模式下,Docker会为容器配置独立的网络命名空间,并通过Docker网络接口将容器端口映射到主机端口。

  1. 移除容器时使用桥接模式启动它,不要使用--net=host参数。

  2. 如果需要访问主机的网络接口或服务,可以通过主机模式(host mode)来绑定特定的主机资源(如/etc/hosts或者特定的主机网络接口)到容器中,而不是使用主机网络模式。

例如,启动一个使用桥接模式的容器,而不是主机网络模式:

docker run -d -p 8080:80 myimage
这里-d表示后台运行,-p 8080:80表示将容器内的80端口映射到主机的8080端口

但是一般不建议这么干,因为这样docker和宿主共享网络不是很安全,一般都建议在docker中建立连接通过别名构建docker之间通信

docker network create testnet

 然后容器中构建服务的时候加上 --network 

docker run -d -p 4000:4000 --network testnet --network-alias yourservice --name  yourservice  yourservice 

这样docker之间就可以通过别名来访问,宿主机和docker有效隔离

http://www.lryc.cn/news/502042.html

相关文章:

  • 音视频入门基础:MPEG2-TS专题(12)—— FFmpeg源码中,把各个transport packet组合成一个Section的实现
  • 【数据结构】二叉树的性质和存储结构
  • gbase8s之查看锁表的sql
  • URI 未注册(设置 语言和框架 架构和 DTD)
  • Ubuntu上使用system()函数运行不需要输入密码
  • 【MySQL】数据库必备知识:全面整合表的约束与深度解析
  • Windows下Docker快速安装使用教程
  • PTA DS 6-2 另类堆栈 (C补全函数)
  • rk3568之mpp开发笔记mpp移植到开发板
  • Vue解决跨域问题
  • Kubernetes Nginx-Ingress | 禁用HSTS/禁止重定向到https
  • TortoiseGit的下载、安装和配置
  • 如何绕过IP禁令
  • Vue3的provide和inject实现多级传递的原理
  • 使用html2canvas实现前端截图
  • 使用 Python 爬取某网站简历模板(bs4/lxml+协程)
  • 深度学习模型中音频流式处理
  • C语言(字符数组和字符指针)
  • SkyWalking Helm Chart 4.7.0 安装、配置
  • 微搭低代码AI组件单词消消乐从0到1实践
  • 23种设计模式之中介者模式
  • 【Golang】Go语言编程思想(六):Channel,第六节,并发编程模式
  • unity打包web,如何减小文件体积,特别是 Build.wasm.gz
  • go引入skywalking
  • 大华DSS数字监控系统 attachment_downloadAtt.action 任意文件下载漏洞复现
  • qt 封装 调用 dll
  • Python使用Selenium库获取 网页节点元素、名称、内容的方法
  • 系统安全——访问控制访问控制
  • SQL Server 数据库还原到某个时点(完整恢复模式)
  • 埃隆马斯克X-AI发布Grok-2大模型,快来体验~