当前位置: 首页 > 知识库问答 >
问题:

无法将redis容器链接到docker中的node.js容器

刘奇
2023-03-14

这是Node.js应用程序。

var express = require('express');
var app = express();   
app.get('/', function(req, res){
  res.send('hello world');
});
app.set('trust proxy', 'loopback') 
app.listen(3000);

var redisClient = require('redis').createClient(6379,'localhost');
redisClient.on('connect',function(err){
   console.log('connect');
})

为了部署应用程序,我分别使用了一个node.js容器和一个redis容器,并将node.js容器与redis容器链接起来。

redis容器可通过以下方法获得

docker run -d --name redis -p 6379:6379 dockerfile/redis
FROM google/nodejs
WORKDIR   /src
EXPOSE  3000
CMD ["/bin/bash"]
docker build -t nodejs Dockerfile_path
docker run -it --rm -p 8080:3000 --name app -v node_project_path:/src --link redis:redis nodejs

但我有个错误说:

Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED

由于redis容器暴露于6379,而我的nodejs容器正在链接到redis容器。在我的Node.js应用程序中,使用端口6379连接到localhost redis服务器应该是可以的,但实际上它根本不起作用

共有1个答案

戎志勇
2023-03-14

当您将redis容器链接到node容器时,docker已经为您修改了hosts文件

然后您应该能够通过以下方式连接到redis容器:

var redisClient = require('redis').createClient(6379,'redis'); // 'redis' is alias for the link -> what's in the hosts file.

发件人:https://docs.docker.com/userguide/dockerlinks/

$ sudo docker run -d -P --name web --link db:db training/webapp python app.py
--link name:alias
 类似资料:
  • 要运行测试文件,Flask应用程序需要连接到Redis。我尝试将这些URL用于redis主机,如localhost:6379,redis:6379,0.0.0.0:6379,但都没有用。他们都告诉我连接错误或连接拒绝。 知道如何从jenkins docker容器中连接到redis吗?

  • 问题内容: 计划 我希望我的tomcat服务器能够在单独的容器中连接到我的MySQL服务器。 问题 Tomcat无法连接到MySQL 我使用了wordpress教程中的一些详细信息,这些信息涉及与mysql容器建立链接并创建指向MySQL的链接。 尽管tomcat和mysql旋转得很好,但我似乎无法使tomcat能够连接到MySQL,但是这些设置在我的本地计算机上也可以正常运行。 我也尝试使用它,

  • 我有zipkin服务器作为Spring Boot应用程序运行。我已经将jar导出到docker容器。 我已经探索过这个环节。

  • 问题内容: 我需要使用docker-compose创建Rails和Mysql容器。当我尝试使用创建容器之间的链接时,我得到 无法启动容器9b271c58cf6aecaf017dadaf5b无法链接到未运行的容器:/ puma_db_1 AS / puma_web_1 / db 档案 Docker文件 docker-compose.yml 问题答案: 容器很可能无法启动。 仅启动服务以确保其正常运行

  • 我在这个repo中用2个图像制作了3个docker容器,使用MongoDB公共图像制作了1个。我使用 < code>docker-compose.yaml是: 但是MongoDB无法与节点服务器连接,并给出了以下错误: < code>backend/db.js的代码: 添加mongouri作为环境变量后的终端输出: 新错误:

  • 我的docker版本是1.13.1。我正试图从我的docker容器连接到redis-server,但我遇到了拒绝连接的错误。详细的日志如下: 原因:redis.clients.jedis.exceptions.jedisconnectionException:java.net.Connection:redis.clients.jedis.Connection(Connection.java:207