我有一个现有的节点应用程序,它连接到127.0.0.1:6379
的redis。我无法改变这一点。
我了解到,使用docker撰写时,它会连接两个服务redis
和node
,并允许它们使用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>
答案 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