错误信息显示"Connection refused",这通常说明 Docker 容器内的 Hyperf 项目无法连接到你本机的 Redis 服务。
1. 容器内的 127.0.0.1 指向问题
在 Docker 容器中,127.0.0.1
指的是容器本身,而不是宿主机(你的 Mac)。如果 Redis 安装在宿主机上,容器内部用 127.0.0.1
是无法访问到的。
解决方案
-
使用 host.docker.internal
在你的
.env
文件中,将REDIS_HOST
修改为host.docker.internal
:iniREDIS_HOST=host.docker.internal REDIS_AUTH=123456 REDIS_PORT=6379 REDIS_DB=0
这样容器就会通过 Docker 内置的 DNS 解析到宿主机 IP。
-
设置 Docker 网络
如果你使用的是自定义网络,确保容器可以通过网络访问到宿主机的 IP 地址。