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

Docker容器中Jedis连接失败:无法解析DNS主机求助

解决Docker容器内Jedis无法连接Redis的问题

针对你遇到的Failed to connect to any host resolved for DNS name异常,按以下步骤排查解决:

1. 检查Redis的网络绑定配置

Redis默认仅绑定127.0.0.1,导致容器无法访问。修改redis.conf:

  • 注释掉bind 127.0.0.1行,或改为bind 0.0.0.0(允许所有IP访问)
  • 将protected-mode设置为no(生产环境需配合密码认证保障安全)
    修改后重启Redis服务。

2. 使用Docker Host网络模式运行容器

启动容器时指定--network host,让容器直接复用宿主机网络栈,此时容器内可直接用localhost或宿主机IP访问Redis:

docker run --network host your-image-tag

3. 改用Docker内置宿主机别名

Docker为容器提供了宿主机的默认别名host.docker.internal(Linux/Windows/Mac均支持),修改Dockerfile的CMD指令:

CMD ["java", "-jar","app.jar","host.docker.internal","6379"]

重新构建镜像并运行容器即可。

4. 验证宿主机防火墙规则

确保宿主机的6379端口对外开放,允许Docker容器所在的网络段访问。以Linux为例:

ufw allow 6379

验证步骤

  1. 在宿主机执行redis-cli -h <你的IP> -p 6379,确认Redis服务正常可访问
  2. 进入容器内部,执行telnet host.docker.internal 6379或redis-cli测试网络连通性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:18:19