0

我有一个基于 Laravel 构建的应用程序。我正在使用Laradock并且我正在尝试使用Redis container,但我遇到了连接问题。

使用命令:

docker inspect laradock_redis_1

我可以看到:“IPAddress”:“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 上的端口,但它还不起作用。我究竟做错了什么?

4

1 回答 1

0

您可以不使用容器 IP 地址,name of the container或者如果您正在使用docker-compose.yml,则可以使用name of the service代替 IP 地址。所以沿着这些路线的东西会起作用:

const redis = new Redis({
                 port: 6379,
                 host: laradock_redis_1
               });
于 2019-01-28T13:10:41.933 回答