带有nodejs的Docker不会启动容器



这是我的Dockerfile,非常简单的

FROM node:8.12.0-alpine EXPOSE 3000 CMD [ "node" ]

我运行

docker build -t node_alpine .

docker run -p 80:3000 node_alpine

但是容器没有启动。当我运行时

docker ps

我什么都看不见。为什么?

如果您只是在没有参数的情况下运行node,它将从其标准输入中读取程序,如果没有任何内容,它将立即退出。如果运行docker ps -a,您应该会看到退出的容器。

我建议您在主机上设置一个普通的Javascript开发环境。一旦你的应用程序正常工作,就写一个Dockerfile,将你的(构建的(应用程序COPY写入一个映像中,然后使用CMD来运行它。

你展示的Dockerfile并没有真正起到任何作用。如果你确实为Node提供了标准输入,你可能会得到交互式提示

docker run --rm -it node:8.12.0-alpine node

但这是一种非常迂回的方式来获得语言解释器REPL;只需将Node直接安装在您的主机上,然后使用它进行开发。

最新更新