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
我已经从 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
然后尝试先使用
确认它在本地 运行ningcurl localhost:8000