我有一个基于Laravel构建的应用程序。 我正在使用 Laradock ,并且正在尝试使用 Redis容器,但是我在连接方面遇到了问题。
使用命令:
docker inspect laradock_redis_1
我可以看到:“ IP地址”:“ 172.22.0.2”,
通过前端,我尝试使用ioredis连接到Redis:
import Redis from 'ioredis';
const redis = new Redis({
port: 6379,
host: 172.22.0.2,
password: "password"
});
redis.on('pmessage', function(subscribed, channel, message) {
...
})
但是我无法连接,因为出现此错误:
[ioredis]未处理的错误事件:错误:连接ETIMEDOUT
我也在尝试更改IP和端口,例如:
port: 6379,
host: 127.0.0.1,
或使用1111更改docker-compose上的端口,但仍无法使用。 我在做什么错了?
答案 0 :(得分:0)
您可以使用name of the container
而不是使用容器ip地址,或者如果使用的是docker-compose.yml
,则可以使用name of the service
代替ip地址。因此,遵循以下原则将起作用:
const redis = new Redis({
port: 6379,
host: laradock_redis_1
});