Redis和docker-compose连接127.0.0.1:6379

时间:2018-05-10 17:07:32

标签: node.js docker redis port

我有一个现有的节点应用程序,它连接到127.0.0.1:6379的redis。我无法改变这一点。

我了解到,使用docker撰写时,它会连接两个服务redisnode,并允许它们使用redis主机名进行连接,但我无法更改此内容。< / p>

如何才能使redis可以从node主机和端口的127.0.0.1:6379应用程序访问?

这是我的docker-compose.yml文件:

version: '3'

services:
  redis:
    image: redis
    hostname: "127.0.0.1"
  redis-cli:
    image: redis
    links:
      - redis
    command: redis-cli -h 127.0.0.1

这是输出:

$ docker-compose run redis-cli
Starting install_redis_1 ... done
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

1 个答案:

答案 0 :(得分:0)

您可以在两个容器中使用network_mode: host使redis在localhost上公开其6379,并使redis-cli可以使用localhost:

version: '3'

services:
  redis:
    image: redis
    network_mode: host
  redis-cli:
    depends_on:
      - redis
    image: redis
    network_mode: host
    command: redis-cli -h 127.0.0.1 ping

运行它:

> docker-compose run redis-cli
Starting dockerredis_redis_1 ... done
PONG