docker ps -a
docker logs --tail 100 容器名
docker run -it --entrypoint sh 镜像名
# 检查
docker inspect 容器名 --format '{{.State.ExitCode}}'
docker run 之后容器状态立刻变成 exited,docker ps 看不到,业务完全没起来。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,主进程执行完就结束或启动即报错,容器生命周期跟随主进程。
围绕「Docker 容器退出」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。
处理上按这个顺序:看容器日志与退出码;用交互方式进容器手动执行启动命令;确认入口脚本权限与换行符。
改完只确认一件事:容器能保持运行状态,日志中启动成功且端口可访问。