Docker Influx DB 和 Nodejs - 连接被拒绝
Docker Influx DB and Nodejs - Connection Refused
我一直在尝试使用 InfluxDB(时间序列数据库)并尝试使用 Docker。根据我的阅读,我在 DockerCompose
文件中定义了我的 nodejs 应用程序和 InfluxDB。
Docker文件
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"}]}]}
当我使用启动 nodejs 和 InfluxDB 的 docker-compose up
启动时,我可以在单独的终端 window 中启动 nodejs 应用程序,它通过端口 8086 完美连接。
我是否遗漏了什么阻止 docker 容器中的 nodejs 应用程序与另一个 docker 容器中的 InfluxDB 通信?我的印象是 docker-compose
文件应该为其建立网络。
谢谢
@DavidMaze 和@yogeshwar 感谢您的回复!是的,在我的数据库连接中,我将其更改为 influx-db
,这就是我为服务命名的,它运行起来非常棒!感谢您的帮助!
我一直在尝试使用 InfluxDB(时间序列数据库)并尝试使用 Docker。根据我的阅读,我在 DockerCompose
文件中定义了我的 nodejs 应用程序和 InfluxDB。
Docker文件
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"}]}]}
当我使用启动 nodejs 和 InfluxDB 的 docker-compose up
启动时,我可以在单独的终端 window 中启动 nodejs 应用程序,它通过端口 8086 完美连接。
我是否遗漏了什么阻止 docker 容器中的 nodejs 应用程序与另一个 docker 容器中的 InfluxDB 通信?我的印象是 docker-compose
文件应该为其建立网络。
谢谢
@DavidMaze 和@yogeshwar 感谢您的回复!是的,在我的数据库连接中,我将其更改为 influx-db
,这就是我为服务命名的,它运行起来非常棒!感谢您的帮助!