【发布时间】:2020-04-20 17:39:08
【问题描述】:
我在 Docker 容器中运行 nodejs 应用程序。该应用程序托管在我使用 SSH 连接到的 bluehost centOS VPS 上。我使用以下命令在容器中运行应用程序:sudo docker run -p 80:8080 -d skepticalbonobo/dandakou-nodeapp。然后我检查容器是否正在使用sudo docker ps 运行,确实如此。但是当我尝试使用域名或 IP 地址从 Chrome 访问应用程序时,我得到:“无法访问此站点”。然而,我注意到在 sudo docker ps 的输出中,在 COMMAND 下我得到docker-entrypoint... 而不是node app.js,我不知道如何修复它。您可以使用docker pull skepticalbonobo/dandakou-nodeapp 拉动容器。这是我的 Dockerfile 的内容:
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY . .
USER root
RUN chown -R node:node . .
EXPOSE 8080
CMD [ "node", "app.js" ]
谢谢!
【问题讨论】:
-
您是否能够从您的主机连接到在本地主机上运行(在 docker 中)的应用程序,例如卷曲?
-
您能否在 Dockerfile 中包含
FROM行,以及容器启动时打印的任何输出?如果它说“正在侦听 127.0.0.1:8080”之类的内容,它将无法从容器外部访问,您需要将该绑定地址更改为 0.0.0.0。 -
你能尝试在本地运行 docker 容器吗?如果它运行正常,那么这是您在 Bluehost 之外设置访问权限的方式的问题
-
检查防火墙设置bluehost,是否允许外部访问80端口。
标签: node.js docker centos vps bluehost