调试演练:接口 502,容器里却什么都没有

现场:shop-web(nginx)报 502,上游 shop-api 看起来在跑。镜像是 slim 系,没有 bash、没有 curl、没有 ps。按顺序点按钮,看这套「先确认能不能进 → 再用 inspect/top 取证 → 最后用 --entrypoint 复现」的流程。

deploy@server:/srv/shop
# exec 会话是一次性的:容器重建后你装的调试工具会消失

三个结论值得记住:docker exec 只是「在已有容器的 namespace 里再开一个进程」,它不改变容器本身;--format 让 inspect 从「几 KB JSON」变成一行可用结论;nsenter / /proc/<pid>/ 让你在镜像里一个工具都没有时仍能取证,代价是需要宿主 root。

以上输出是真实 docker 命令结果的整理样本,用来观察字段含义;不同版本(含 BuildKit 开关)的打印格式会有差异。