node.js - 使用命令“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"]
如果有人有任何提示,那就太好了,谢谢
解决方案
我建议你检查日志。您的 JS 应用程序中可能出现错误,并且它在执行 npm start 后的短时间内崩溃。所以容器被制造出来了,它开始了,但很快就关闭了。那是因为docker container ls
它只向您显示正在运行的容器,而您必须使用它docker container ls --all
来查看未运行的容器。您可以使用docker logs查看检查日志,也可以调整 Dockerfile 以便保留应用程序的日志,方法是将最后一行更改为:
RUN npm start | tee /logs/app.log
,然后检查该文件
推荐阅读
- makefile - 尝试运行特定于平台的构建时 Automake 失败
- javascript - 有没有任何javascript包可以在反应中转换带有书签的pdf?
- machine-learning - XGBoost 将特征重要性作为列列表而不是绘图
- javascript - 我可以使用班级列表并在动画同时完成后将其删除吗
- python - AttributeError:“消息”对象没有属性“成员”-Discord.py 重写
- java - Hazelcast SQL 以动态方式查询
- node.js - 创建 systemd 服务后,NodeJS 应用程序无法在公共 DNS 中访问
- python - 使用单个 LSTM 模型预测 350 个微细分?
- reactjs - 如何在 ErrorBoundary 内重定向?
- html - 如何在 flex 容器中强制居中特定元素?