【问题标题】:Docker Influx DB and Nodejs - Connection RefusedDocker Influx DB 和 Nodejs - 连接被拒绝
【发布时间】:2020-05-08 01:11:19
【问题描述】:

我一直在尝试使用 InfluxDB(时间序列数据库)并尝试使用 Docker。根据我的阅读,我在 DockerCompose 文件中定义了我的 nodejs 应用程序和 InfluxDB。

Dockerfile

FROM node:12

# Create working directory
WORKDIR /usr/src/app

COPY package.json .

RUN npm install

COPY . .

CMD "node" "websocket.js"

docker-compose.yml

version: '3'
services:
  web:
    image: docker-td-node-api
    build: .
    command: "node websocket.js"
    depends_on:
      - "influx-db"
  influx-db:
    image: influxdb
    ports: 
      - "8086:8086"

除了我的 nodejs 应用程序尝试与 docker 容器(使用 InfluxDB nodejs 库)通信时,一切都正常启动,它一直说:

web_1        | Getting database names...
web_1        | Error: connect ECONNREFUSED 127.0.0.1:8086
web_1        |     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
web_1        |   errno: 'ECONNREFUSED',
web_1        |   code: 'ECONNREFUSED',
web_1        |   syscall: 'connect',
web_1        |   address: '127.0.0.1',
web_1        |   port: 8086
web_1        | }

我觉得这很奇怪,因为从一个单独的终端,我可以通过端口 8086 查询数据库:

$curl -G http://127.0.0.1:8086/query --data-urlencode "q=CREATE DATABASE mydb"
{"results":[{"statement_id":0,"messages":[{"level":"warning","text":"deprecated use of 'CREATE DATABASE mydb' in a read only context, please use a POST request instead"}]}]}

当我使用docker-compose up 启动 nodejs 和 InfluxDB 时,我可以在单独的终端窗口中启动 nodejs 应用程序,它通过端口 8086 完美连接。

我是否缺少阻止 docker 容器中的 nodejs 应用程序与另一个 docker 容器中的 InfluxDB 通信的东西?我的印象是 docker-compose 文件应该为它建立网络。

谢谢

【问题讨论】:

  • localhost 在 Docker 中通常是“这个容器”;每个容器的localhost 和主机系统的localhost 不同。在容器之间,您可以使用 Compose 块名称作为主机名:尝试连接到 influx-db 作为主机名。
  • @DavidMaze 说的是真的,但您还需要确保在尝试连接时您的数据库已启动。您可以通过在 influx-db 中添加 healthcheck 或通过在 node.js 应用程序中轮询数据库来实现。我更喜欢健康检查。

标签: node.js docker docker-compose influxdb


【解决方案1】:

@DavidMaze 和@yogeshwar 感谢您的回复!是的,在我的数据库连接中,我将其更改为influx-db,这是我为我的服务命名的,它就像一个魅力!感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2018-07-03
    • 2020-02-22
    • 2016-02-14
    • 2018-07-14
    相关资源
    最近更新 更多