我无法对在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。“
不确定从这里要去哪里。我认为自己不熟悉物联网。
答案 0 :(得分:1)
这是因为您尚未打开主机上的端口。您可以尝试:
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: redis
ports:
- "6379:6379"