首页 > 解决方案 > 使用命令“Docker container run”后,我的容器没有显示

问题描述

我目前正在尝试在“Docker 中的项目 - Eduonix 学习解决方案”视频教程中学习 Docker,当我构建我的应用程序容器时,控制台会返回应用程序的 ID。到目前为止一切都还好。然后,当我立即运行 container ls 时,它会显示容器。但过了几秒钟后,容器不再显示在容器列表中。

当我运行sudo docker ps -a容器时也不显示。

我不知道为什么。

这是我的 Dockfile:

FROM node
RUN apt-get update -q && apt-get dist-upgrade -y && apt-get clean && apt-get autoclean
EXPOSE 3000
ENV APP_PATH /usr/share/app
RUN mkdir -p $APP_PATH && chown node:node $APP_PATH
WORKDIR $APP_PATH
USER node
COPY . $APP_PATH/
RUN npm install
CMD ["npm","start"]

如果有人有任何提示,那就太好了,谢谢

标签: node.jsdockerdockerfile

解决方案


我建议你检查日志。您的 JS 应用程序中可能出现错误,并且它在执行 npm start 后的短时间内崩溃。所以容器被制造出来了,它开始了,但很快就关闭了。那是因为docker container ls它只向您显示正在运行的容器,而您必须使用它docker container ls --all来查看未运行的容器。您可以使用docker logs查看检查日志,也可以调整 Dockerfile 以便保留应用程序的日志,方法是将最后一行更改为: RUN npm start | tee /logs/app.log ,然后检查该文件


推荐阅读