gpt4 book ai didi

node.js - 即使在端口绑定(bind)后,docker 上的 Node 服务器也无法在本地主机上访问

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:09 24 4
gpt4 key购买 nike

我有 graphql Node 服务器。我可以在没有 docker 的情况下在本地运行它。但是在创建服务器的 docker 容器并将容器端口与主机端口绑定(bind)后,这不起作用。

这是我的 Dockerfile 代码:

 FROM node:boron-alpine
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
ENV SERVER_PORT 8080
EXPOSE 8080
CMD npm run build && npm start

我的 Node 服务器代码是这样的:

  app.listen(process.env.SERVER_PORT,'0.0.0.0')
console.log(`listening at ${port}`)

我使用以下命令运行 docker:

   docker run -it -p 8080:8080  nodeapi

这完美地工作 nodejs 可以看到 env SERVER_PORT 因为它显示

   "listening at 8080"

在控制台中。

但是当我打开 localhost:8080 时,这不起作用(无法访问该站点)。

我也试过运行 docker 命令

    docker run -it -p 127.0.0.1:8080:8080  nodeapi

这行不通

我在 Windows 10 最新版本上使用 docker 工具箱

谢谢

最佳答案

Docker 工具箱不会将端口映射到本地主机。它将它映射到 Docker VM IP 的

运行以下命令获取IP

docker-machine ip

然后使用 http://<IP>:8080在您的浏览器中

关于node.js - 即使在端口绑定(bind)后,docker 上的 Node 服务器也无法在本地主机上访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com