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

如何从Mac本地访问Docker容器内的Prometheus指标服务(8000端口)?

解决Mac本地访问Docker容器内Prometheus指标端口的问题

是的,你需要修改docker-compose.yml来实现本地访问,核心原因有两个:

  • Mac上的Docker基于虚拟机运行,容器内部IP(172.18.0.0/16段)无法直接从本地浏览器访问,必须通过端口映射将容器内的端口暴露到宿主机。
  • 当前配置仅映射了Flask服务的5000端口到宿主机5001,并未对Prometheus指标使用的8000端口做映射。

具体修改步骤:

  1. 添加8000端口映射:在my_app服务的ports字段中新增一行,把容器内的8000端口映射到宿主机的8000端口(也可选用其他未被占用的宿主机端口)。
  2. 确认指标服务绑定地址:确保代码中start_http_server绑定的是0.0.0.0而非默认的127.0.0.1——如果绑定127.0.0.1,容器内的服务仅能被自身访问,无法通过端口映射暴露给外部。修改后的代码示例:
    start_http_server(8000, addr='0.0.0.0')
    

修改后的docker-compose.yml:

services:
  my_app:
    build:
      context: ./app
      dockerfile: Dockerfile
    ports:
      - "5001:5000"
      - "8000:8000"  # 新增Prometheus指标端口映射
    environment:
      - FLASK_ENV=development

  my_other_app:
    build:
      context: ./my_other_app
      dockerfile: Dockerfile
    depends_on:
      - my_app

验证方法:

执行docker-compose down && docker-compose up --build重启容器后,在Mac本地浏览器访问http://localhost:8000/metrics,即可看到Prometheus格式的指标数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:57:09