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

Docker+Nginx环境下无法访问Grafana与pgAdmin的问题排查

问题排查步骤

你遇到的无Nginx头的404,说明请求没经过主机Nginx(因为你是直接访问端口,而非走主机Nginx代理),问题大概率出在Docker端口映射、容器状态、防火墙/安全组这几个环节,按以下顺序排查:

1. 核对Docker端口映射配置

检查docker-compose.yml和docker-compose.override.yml中Grafana、pgAdmin的ports字段是否正确:

  • Grafana默认容器内端口是3000,要映射到主机3090,配置应为:
    ports:
      - "3090:3000"
    
    若写成3090:3090,容器内未开3090端口,自然返回404。
  • pgAdmin默认容器内端口是80,映射到主机5050的配置应为:
    ports:
      - "5050:80"
    
    别把容器内端口写成5050,pgAdmin镜像默认不监听该端口。

执行docker-compose ps命令,查看容器端口映射状态,确认Grafana、pgAdmin的端口列显示类似:

  • Grafana: 0.0.0.0:3090->3000/tcp
  • pgAdmin: 0.0.0.0:5050->80/tcp
    若显示0.0.0.0:3090->3090/tcp或端口列为空,说明映射配置错误。

2. 确认容器是否正常运行并监听端口

  • 用docker-compose logs grafana和docker-compose logs pgadmin查看容器启动日志,排查是否有报错(比如配置文件错误、权限问题)。
  • 进入容器内部检查端口监听:
    针对Grafana:
    docker-compose exec grafana netstat -tulpn | grep 3000
    
    针对pgAdmin:
    docker-compose exec pgadmin netstat -tulpn | grep 80
    
    若无输出,说明容器内服务未正常启动,无法响应请求。

3. 检查主机防火墙/安全组

  • 若使用云服务器,先去控制台检查安全组是否开放3090、5050端口,Prometheus的9090能通不代表其他端口已开放。
  • 本地主机的话,检查防火墙规则:
    Linux用ufw status确认是否允许3090、5050端口的入站请求;Windows通过防火墙高级设置确认端口放行。

4. 排查主机端口占用

检查主机上3090、5050端口是否被其他进程占用:

# Linux/macOS
lsof -i :3090
lsof -i :5050

# Windows
netstat -ano | findstr :3090

若有其他进程占用这些端口,Docker无法绑定,访问时会返回主机的404(无服务监听该端口)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:47:27