Docker常用命令与容器排查
按状态、日志、进入、资源四类整理排查命令,给出常见故障的判断顺序。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。
涉及 Docker命令、容器排查、docker logs 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。
状态查看
docker ps -a 看退出码,137 是被 OOM 杀,125 多为启动命令错误。
日志
docker logs --tail 200 -f 先看实时,加 --since 按时间过滤;别只看应用日志,docker events 也有线索。
进入容器
docker exec -it 加 sh,容器里工具不全时用 nsenter 从宿主机进入。
资源
docker stats 看实时占用,配合宿主机 free 与 iostat 判断是容器内还是宿主机问题。
镜像排查
docker history 看层构建历史,定位镜像体积与来源。
速查表
| 环节 | 关键动作 |
|---|---|
| 状态查看 | docker ps -a 看退出码,137 是被 OOM 杀,125 多为启动命令错误 |
| 日志 | docker logs --tail 200 -f 先看实时,加 --since 按时间过滤;别只看应用日志,docker events 也有线索 |
| 进入容器 | docker exec -it 加 sh,容器里工具不全时用 nsenter 从宿主机进入 |
| 资源 | docker stats 看实时占用,配合宿主机 free 与 iostat 判断是容器内还是宿主机问题 |
常见问题
Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。
Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。
Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。
小结
回到这篇的 5 个环节:状态查看、日志、进入容器、资源、镜像排查。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。
相关阅读:Nginx日志分析与正则统计、rsync异地备份:脚本与增量同步、内核参数调优:文件句柄与网络队列。
延伸阅读:Docker Compose部署应用栈、Nginx反向代理与负载均衡配置、内存占用高排查:从free到smem。