无法从不同的docker容器连接到redis

问题描述 投票:0回答:1

目前我有一个上传到DockerHub的个人docker镜像,我正在进行更改以将此应用程序连接到redis(也在另一个docker容器中运行)

现在,当我尝试连接到redis时,我的应用程序中有下一条消息:

 Error saving to redis: dial tcp 127.0.0.1:6379: connect: connection refused

我知道他们不在同一个网络中,所以我的应用程序指向127.0.0.1:6379没有执行任何操作,因此,我正在寻找以某种方式连接这些容器的最佳方法我的应用程序取决于托管redis的IP,从我的本地计算机上我可以使用redis,但不能使用其他docker容器。简而言之,我所做的是:

docker run --name redis_server -p 6379:6379 -d redis
sudo docker run -d --restart=always -p 10000:10000 --link redis_server:redis --name my_app repo/my_app

所以,我正在寻找关于如何使my_app可以访问127.0.0.1:6379的解决方案。顺便说一句,我不使用docker-compose

docker redis dockerhub
1个回答
1
投票

最简单的解决方案是使用“--network = host”运行Docker,它将容器绑定到主机网络。这是一个非常好的测试解决方案,但它会将端口和服务分别暴露给互联网(如果你没有防火墙),这可能安全也可能不安全。

另一种方法是以下列方式定义网络:

docker network create -d bridge my-net

然后通过使用docker run运行--network=my-net命令在同一网络上运行容器。这样,您可以按名称引用每个容器。例如,在您的情况下,您可以从Redis容器中使用ping my_app,反之亦然。

© www.soinside.com 2019 - 2024. All rights reserved.