无法连接 docker 个容器

Unable to connect with docker container

我有一个服务器-api 应用程序。

在我的本地主机上,我只需要 2 个命令来启动应用程序:

  1. npm 安装
  2. npm 启动

没有了,在3000端口完美运行

我正在尝试 docker 调整我的服务器以使用 docker-compose 启动它。

好的,这是我的docker文件:

FROM node:14-alpine AS development

ENV NODE_ENV development

WORKDIR /app

COPY package.json .
COPY package-lock.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

我启动构建命令来构建镜像:

docker build --tag server-api . 

完成后,我 运行 容器:

docker run -p 80:3000 server-api

日志是完美的,它说 运行ning 在端口 3000 中,我应该连接到 localhost:3000 以检查我的服务器-api 应用程序。

但是,我不明白那是容器的端口,我已经用命令 -p 80:3000 启动了容器,所以我检查了我电脑的端口 80...但是没有任何反应。

我应该如何排除故障?

我已经尝试获取一些与我的容器连接的信息:

docker exec -it <container_id> sh 

但一切看起来都很完美,而且是一个简单的应用程序。

我做错了什么?

正如@ErikMD 所说,所有后端应用程序都需要侦听特殊 IP 0.0.0.0 才能进行 dockerized(React 不会发生此问题)。

我需要阅读这个 post:https://nodejs.org/en/docs/guides/nodejs-docker-webapp/

为了解决我的问题,我检查了如何将本地主机更改为 0.0.0.0 作为主机。

默认我的主机是本地主机。

所以,我在 package.json 中更改了这个:

"scripts": {
  "start": "json-server --watch db.json"
},

为此:

"scripts": {
   "start": "json-server --host 0.0.0.0 --port 8080 --watch db.json"
},

现在终于完美了。