You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将端口暴露至Docker容器时出现连接拒绝问题排查

问题原因及解决方案

核心问题分析

  1. expose 指令误用:你在docker-compose里添加的expose: - "9100"完全无效——这个指令仅用于声明容器内部开放的端口,而你要访问的是宿主机上被autossh转发的9100端口,和容器内部端口无关联。
  2. autossh转发的绑定范围限制:默认情况下,autossh本地端口转发只会绑定宿主机的127.0.0.1(仅允许本地回环访问),而容器通过host.docker.internal访问的是宿主机的Docker网桥IP(比如你看到的172.17.0.1),这个IP并未被autossh绑定9100端口,因此会出现连接拒绝。

解决步骤

1. 修改autossh转发命令,绑定所有网卡

将你的autossh转发命令调整为:

autossh -L 0.0.0.0:9100:localhost:9100 user@你的远程服务器地址

0.0.0.0表示让宿主机的所有网卡IP都监听9100端口,包括Docker网桥可访问的IP。

2. 清理docker-compose的无效配置

删除expose: - "9100"这一行,该配置对当前场景没有任何作用。

3. 重启服务验证

  • 重启autossh进程
  • 重启Prometheus容器:docker-compose restart prometheus
  • 进入容器再次执行:wget http://host.docker.internal:9100/metrics,此时即可正常获取监控指标。

内容的提问来源于stack exchange,提问作者Marvin Ludwig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:20:41