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

开发环境Docker内连接Redis报Name or service not known错误求助

问题根因

你的报错核心是redis:6379域名解析失败,你的应用容器无法将redis这个主机名解析到对应Redis容器的IP地址,和本地Redis能连通是因为本地访问走的是宿主机网络,和Docker容器内部互访逻辑不同。

排查步骤

  • 确认两个容器归属同一个Docker自定义网络
    Docker默认的bridge网络不支持容器名解析,需要将应用容器和Redis容器都加入同一个自定义网桥。
    执行命令查看容器所属网络:docker inspect <容器ID/容器名> | grep NetworkMode
    如果不在同一网络,先创建公共网络:docker network create app-net,启动两个容器时都添加参数--network app-net即可。如果使用docker-compose编排,两个服务写在同一个yaml文件中时默认会创建公共网络,无需额外配置。
  • 确认Redis容器的名称/网络别名正确
    你代码中配置的Redis主机名为redis,需要保证Redis容器的名称或者网络别名确实为redis。如果启动Redis容器时命名为redis-test等其他名称,要么修改代码配置的主机名和容器名一致,要么启动Redis容器时添加别名参数:docker run --network app-net --network-alias redis <Redis镜像名>。docker-compose环境可在Redis服务配置下添加:
    networks:
      app-net:
        aliases:
          - redis
    
  • 容器内部验证连通性
    进入应用容器内部执行命令验证连通性:nc -zv redis 6379,如果连通失败说明上述网络或别名配置有误,如果连通成功则检查代码是否加载了错误的配置文件,Redis地址配置是否硬编码错误。
  • 避免localhost访问误区
    不要在应用容器中使用localhost连接Redis,容器内的localhost指向应用容器本身,既不是宿主机也不是Redis容器,必须使用容器名/网络别名,或者宿主机的局域网IP进行连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:15:03