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

Docker容器使用容器名作为DNS访问报Bad Gateway,用IP可正常连通

问题根因

你遇到的容器名DNS解析失败问题,主要由以下几个常见原因导致:

  1. 启动Prometheus容器时未显式指定固定容器名,当前使用的practical_lalande是Docker随机生成的临时名称,极易出现输入错误、容器重建后名称变更的问题
  2. 未在Grafana容器中验证DNS解析有效性,无法区分是Docker DNS服务故障还是Grafana配置问题
  3. 部分Docker环境(如WSL2后端的Docker Desktop)存在DNS缓存异常,导致新加入网络的容器名无法及时解析
  4. 若你是在宿主机器上测试容器名访问,会直接失败,Docker自定义网络的DNS解析能力仅对同网络内的容器生效,宿主环境无对应DNS路由

解决方案

按优先级依次执行以下操作即可解决:

  • 第一步:删除现有随机命名的Prometheus容器,重新启动时指定固定容器名,若需要自定义访问别名也可新增--network-alias参数,启动命令调整为:
docker run -d -p 9090:9090 --name prometheus --network-alias prom --network k6_grafana -v C:\xy\QA\K6\prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
  • 第二步:进入Grafana容器验证DNS解析是否正常,执行命令:
docker exec -it k6_grafana_1 nslookup prometheus

如果返回的解析地址为Prometheus容器的对应IP,即证明DNS解析正常

  • 第三步:在Grafana数据源配置中直接填写http://prometheus:9090(或对应自定义别名地址)即可正常连通
  • 若上述操作仍失败,可尝试重启Docker daemon后重建两个容器,清除可能存在的DNS缓存问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:09:01