Docker容器排错必知的8个命令

18 阅读2分钟

Docker容器排错必知的8个命令

作为一名IT运维工程师,日常与Docker容器打交道是必修课。当容器出现故障时,快速定位问题是我们的核心能力。今天给大家分享8个最实用的Docker排错命令。

一、docker logs -f — 查看容器日志

排错第一步永远是看日志。docker logs 可以查看容器的标准输出和标准错误:

# 查看最近100行日志
docker logs --tail 100 my-container

# 实时追踪日志变化
docker logs -f my-container

# 查看指定时间段的日志
docker logs --since 2024-01-01T00:00:00 my-container

二、docker inspect — 检查容器详细信息

docker inspect 返回容器的完整配置和状态信息,包括网络、挂载、环境变量等:

# 查看容器完整信息
docker inspect my-container

# 只看容器IP
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-container

# 查看容器挂载卷
docker inspect -f '{{json .Mounts}}' my-container | python3 -m json.tool

三、docker exec -it — 进入容器内部排查

直接进入容器内部,查看文件系统、运行进程、配置文件:

# 进入容器bash
docker exec -it my-container /bin/bash

# 在容器内执行命令
docker exec my-container cat /etc/config/app.conf

# 查看容器内进程
docker exec my-container ps aux

四、docker top — 查看容器内运行的进程

快速确认容器内服务是否正常启动:

docker top my-container

五、docker stats — 实时监控资源占用

实时查看容器的CPU、内存、网络使用情况:

# 监控所有容器
docker stats

# 监控指定容器
docker stats my-container

六、docker events — 查看Docker事件流

实时跟踪Docker守护进程的事件,适合排查容器重启、网络变化等问题:

docker events

七、docker system df — 检查磁盘空间占用

磁盘满了?看看是谁占了空间:

docker system df

# 查看详情
docker system df -v

八、docker diff — 查看容器文件系统变更

查看容器启动后文件系统的变化,排查配置丢失或异常修改:

docker diff my-container

总结

这8个命令涵盖了Docker排错的完整链路:

命令用途优先级
docker logs看日志,定位错误原因⭐⭐⭐
docker inspect查配置,确认网络/挂载⭐⭐⭐
docker exec进容器,深入排查⭐⭐
docker top看进程,确认服务状态⭐⭐
docker stats监控资源,排查性能⭐⭐
docker events跟踪事件流
docker system df查磁盘占用
docker diff查看文件变更

80%的容器问题都可以通过前3个命令定位到原因。建议收藏,遇到容器故障时拿出来照着排查。