docker GCP 上的图像(nodejs 应用程序)returns ERR_CONNECTION_REFUSHED(在本地工作)

docker image (nodejs app) on GCP returns ERR_CONNECTION_REFUSHED (works locally)

我已经从 nodejs 应用创建了一个 docker 图像。我想在 GCP Compute Egine 实例上使用 docker 映像启动 VM 实例。

当我在本地测试图像并使用浏览器导航到 http://localhost:8000 时,它可以正常工作。所以我认为我的 docker 图片没有问题。

docker run -p 8000:8000 -d <username>/<docker-file>

我已使用以下命令将 docker 映像推送到 google 容器存储库:

docker tag <username>/<docker-file> gcr.io/<project-id>/<docker-file>
docker push gcr.io/<project-id>/<docker-file>

现在,当我将 URL (gcr.io/project-id/docker-file) 添加到 VM 实例时,我一直等到实例为 运行,我在导航时收到错误消息http://[instance_external_ip]:8000,我收到错误 ERR_CONNECTION_REFUSED。

我已设置防火墙规则以允许端口 tcp = 8000 和 IP 范围 0.0.0.0/0 上的入口流量。

我是不是漏掉了什么?

编辑:

我的docker文件

FROM node:10

WORKDIR /usr/src/nodejs

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD [ "node", "index.js" ]

在您的 Dockerfile 中,您公开了 8080 而不是 8000。

您是否检查过实例上的容器是否 运行? 也试过curl/telnet吗?

How/when 你开始 运行 宁 docker 了吗? 你能运行这个命令吗

docker run -p 8000:8000 -d gcr.io/<project-id>/<docker-file>:latest

然后尝试先使用

确认它在本地 运行ning
curl localhost:8000