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

node.js docker容器与本地redis服务器(127.0.0.1)之间的连接[重复]

霍修筠
2023-03-14

我正在docker容器中运行一个Node.js应用程序。这是我的docker-compose文件-

version: '3.7'
services:
  notification-app:
    container_name: ${CONTAINER_NAME}
    build:
      context: ./
      dockerfile: ./Dockerfile
      args:
        - APP_ENV=${APP_ENV}
    ports:
      - ${EXPORTED_PORT}:${APP_PORT}
    environment:
      - REDIS_HOST=${REDIS_HOST}
      - REDIS_PORT=${REDIS_PORT}

这是我的.env文件-

CONTAINER_NAME=sheba_socket

APP_ENV=development
APP_PORT=3000
EXPORTED_PORT=3000

REDIS_HOST=localhost
REDIS_PORT=6379
[ioredis] Unhandled error event: Error: getaddrinfo ENOTFOUND redis
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:64:26)

共有1个答案

董子平
2023-03-14

您可以使用network_mode:“host”在主机网络上运行notification-app服务

更新了docker-compose.yml:

version: '3.7'
services:
  notification-app:
    container_name: ${CONTAINER_NAME}
    build:
      context: ./
      dockerfile: ./Dockerfile
      args:
        - APP_ENV=${APP_ENV}
    environment:
      - REDIS_HOST=${REDIS_HOST}
      - REDIS_PORT=${REDIS_PORT}
    network_mode: "host"     //Here is the change

您可能已经注意到,我已经从原始docker-compose文件中删除了ports。这是因为当我们在主机网络上运行服务时,该服务直接绑定到Docker主机上的端口。因此不需要在主机网络中公开端口。

在此阅读有关docker主机网络的更多信息

 类似资料:
  • C:\用户\跨度t 2\下载\apache-cassandra-3.11.5\bin 启动 Cassandra 服务器 C:\用户\跨度t 2\下载\apache-cassandra-3.11.5\bin 连接错误:('无法连接到任何服务器',{'127.0.0.1':错误(10061,"尝试连接到[('127.0.0.1',9042)]。最后一个错误:无法进行连接,因为目标机器主动拒绝它")})

  • 我正在运行Docker容器,其中运行一个jar文件。 此jar文件需要访问Elasticsearch以读取数据,并且此Elasticsearch服务安装在本地计算机上(不在Docker容器中) 我需要从Docker容器连接到本地Elasticsearch服务以使其正常工作 我在Dockerfile中写了EXPOSE 9200 9300 service-port,我的Docker run命令如下,

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

  • 我试图在我本地的电脑上使用kafka(Windows10)作为生产者,在docker容器(ubuntu)上使用spark流作为消费者。我的示例在容器中一起工作,但我需要在本地计算机上创建流。 在容器的另一边,我正在监听端口2181来接收流。 我希望你能帮助我。谢了。

  • 问题内容: 我正在尝试设置一个docker- compose文件,该文件旨在用Supervisor替换运行多个进程(RQ worker,RQ仪表板和Flask应用程序)的单个Docker容器解决方案。 主机系统是Debian 8 Linux,我的样子如下(我删除了所有其他条目以减少错误源): “ rq-worker1”是Python RQ工作者,尝试通过本地主机和端口6379连接到Redis,但无

  • 我有一个ldap服务器,我想在这个ldap中使用spring security。我的连接配置是: 我的错误是什么?