无法在运行的 docker 映像上发送请求。邮递员中错误套接字挂起。在浏览器中本地主机没有发送任何数据

问题描述 投票:0回答:2

我在本地成功启动了 docker 映像,但无法在 localhost 上发送任何请求。我在邮递员中遇到错误套接字挂起,并且 localhost 没有发送任何数据。

docker 文件

FROM node:20-alpine

MAINTAINER Some Dev

RUN mkdir /app
WORKDIR /app

COPY ./backend /app

RUN npm i

CMD ["npm","start"]

app.ts 和我试图达到的小路线 configs.PORT = 5000 configs.HOST = 0.0.0.0

app.get('/hello',async (req:Request,res:Response,next:NextFunction)=>{
   res.json("Hello")
})

const startServer = async () => {
  try {
    await mongoose.connect(configs.DB_URL);
    console.log("Connected to MongoDB");

      app.listen(+configs.PORT, configs.HOST,() =>{
          console.log(`Server listening on ${configs.PORT} and host ${configs.HOST}`);
      })

  } catch (err) {
    throw new ApiError(err.message, err.status);
  }
};

startServer();

docker build -t buxonlineappv2 .
docker run -d -p 5555:80 buxonlineappv2

容器 ID 图像命令创建状态端口名称 6fd90778e2df buxonlineappv2“docker-entrypoint.s…”51秒前向上39秒0.0.0.0:5555->80/tcp jolly_saha

Postman Browser

docker logs

首先我添加了主机 0.0.0.0。尝试了不同的端口。尝试过 localhost:5555/hello 0.0.0.0:5555/hello http:localhost:5555/hello

node.js typescript docker dockerfile docker-for-windows
2个回答
0
投票

您的

configs.PORT
设置为 5000,因此您的应用程序侦听端口 5000。

这意味着这就是您需要在容器端映射的端口。现在你用

映射端口80
docker run -d -p 5555:80 buxonlineappv2

你应该像这样映射端口 5000

docker run -d -p 5555:5000 buxonlineappv2

它应该可以工作。


0
投票

由于您的服务器正在侦听端口 5000,因此您应该运行以下命令来运行容器:

docker run -d -p 5555:5000 buxonlineappv2

以便主机上的 5555 端口与容器中的 5555 端口映射。

© www.soinside.com 2019 - 2024. All rights reserved.