如何从本地主机向我的Docker容器发送HTTP请求?

时间:2019-07-02 13:54:41

标签: node.js docker http redis docker-compose

我无法对在VM(Docker工具箱)中运行的Docker容器(与Redis数据库通信的Node.js API)发出HTTP请求。

我已经用所需的端口设置了Dockerfile和docker-compose.yml。构建它们并成功运行(“运行”)。

FROM node:8.15

WORKDIR /redis_server

COPY package.json package-lock.json ./

RUN npm install

COPY . ./

EXPOSE 8080

CMD ["npm", "start"]
version: '3'
services:
  web:
    build: .
    depends_on:
      - db

  db:
    image: redis
    ports:
      - "6379:6379"

redis.js

const PORT = 6379
const HOST = 'db'

server.js(express.js)

const PORT = '0.0.0.0:8080'

我成功地构建了容器,然后使用HTTP请求服务来测试GET。由于我运行Docker Toolbox,并且该虚拟机位于主机192.168.99.100上,因此我将请求发送到http://192.168.99.100:8080

这不起作用,我的Visual Studio代码中显示的错误消息是“连接被拒绝。服务未在服务器上运行,或者vscode中的代理设置不正确,或者防火墙阻止了请求。详细信息:错误:连接ECONNREFUSED 192.168.99.100:8080。“

不确定从这里要去哪里。我认为自己不熟悉物联网。

1 个答案:

答案 0 :(得分:1)

这是因为您尚未打开主机上的端口。您可以尝试:

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db

  db:
    image: redis
    ports:
      - "6379:6379"