这是我的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直接安装在您的主机上,然后使用它进行开发。