【发布时间】:2019-02-08 17:11:46
【问题描述】:
目前我有一个个人 docker 镜像上传到 DockerHub,我正在做一些更改以将此应用程序连接到 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
【问题讨论】:
-
我相信使用“--network=host”运行两个容器是最简单的解决方案。
-
@Neekoy 非常感谢你,它有效!对于“--network=host”,我应该考虑哪些安全问题,这会使我容易受到攻击还是什么?
-
好吧,如果您没有防火墙,那么您将通过您的 IP 将这些端口上的服务暴露给外部世界。一个更安全的解决方案可能是预先定义一个网络,然后将两个容器放在上面。一会儿我会写一个答案。