如何从我的主机卷曲在 Docker 容器中运行的服务器?

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

我有一个 Node.js 服务器在 Docker 容器内的端口 8080 上运行。我可以毫无问题地从容器内部的外壳中使用

curl
curl http://localhost:8080
服务器,但是即使我已经映射了端口,我也无法从主机
curl
服务器。

这是我的 Dockerfile:

FROM node:19.7

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD [ "npm", "run", "start:dev" ]

这里是mydocker-compose.yml:

version: "3.9"

services:
  app:
    container_name: app
    build: .
    depends_on:
      - postgres
    ports:
      - "8080:8080"
    volumes:
      - ./:/usr/src/app/
      - /usr/src/app/node_modules

  postgres:
    container_name: postgres
    image: postgres:15.2
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    ports:
      - "5432:5432"
    volumes:
      - data:/var/lib/postgresql/data

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:6.20
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=admin
      - PGADMIN_LISTEN_PORT=5050
    ports:
      - "5050:5050"

volumes:
  data:

我已经从主机上的终端尝试了

curl http://localhost:8080
,并期待看到响应,但却收到了
curl: (52) Empty reply from server
。我也试过
curl http://127.0.0.1:8080
curl http://app:8080
并收到同样的错误。

node.js docker curl docker-compose dockerfile
© www.soinside.com 2019 - 2024. All rights reserved.