我在向 Docker 容器(它是与 Redis 数据库通信的 Node.js API)发出 HTTP 请求时遇到问题,该容器在 VM (Docker Toolbox) 内运行。
我已经使用所需的端口设置了 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'
服务器.js (express.js)
const PORT = '0.0.0.0:8080'
我成功构建了容器,然后使用 HTTP 请求服务来测试 GET。由于我运行 Docker Toolbox 并且虚拟机位于主机 192.168.99.100 上,因此我将请求发送到http://192.168.99.100:8080 http://192.168.99.100:8080.
这不起作用,我的 Visual Studio Code 中出现的错误消息是“连接被拒绝。该服务未在服务器上运行,或者 vscode 中的代理设置不正确,或者防火墙正在阻止请求。详细信息:错误:连接 ECONNREFUSED 192.168.99.100:8080。”
不知道从这里去哪里。我认为自己对物联网并不了解。
这是因为你没有打开主机上的端口。您可以尝试:
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: redis
ports:
- "6379:6379"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)