docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker容器排错命令

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

作者:用户545842986958

本文介绍了8个实用的Docker排错命令,包括查看容器日志,检查容器详细信息和进入容器内部排查等,些命令涵盖了Docker排错的完整链路,可以帮助大家快速定位和解决问题

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

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

docker logs命令介绍

用途:获取容器的标准输出(stdout)和标准错误(stderr)日志,是定位应用层面问题的核心命令。

常用选项

选项说明
-f, --follow实时跟踪日志输出
--tail N只显示最后N行
--since显示指定时间后的日志,如--since 10m
-t, --timestamps显示时间戳

具体示例:

排错第一步永远是看日志。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 logs查看错误输出(如配置文件语法错误、端口冲突、依赖服务不可达等)。

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

docker inspect命令介绍

用途:以JSON格式输出容器或镜像的详细配置信息,包括网络设置、挂载卷、环境变量、启动命令、状态等。

常用选项

选项说明
-f, --format使用Go模板过滤指定字段

具体示例:

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— 进入容器内部排查

docker exec命令介绍

用途:在正在运行的容器内部执行命令,相当于SSH进入容器,用于交互式排查。

常用选项

选项说明
-it分配交互式终端(常用组合)
-d后台执行命令
-e设置环境变量

具体示例:

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

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

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

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

典型排查动作

注意:容器需要包含shell(如bash、sh)才能交互式进入,否则只能执行单条命令。

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

docker top命令介绍

用途:显示容器内运行的进程列表(类似Linux的top命令),帮助定位进程级问题。

常用选项:无特殊选项,支持ps命令的参数(如aux)。

具体示例:

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

docker top my-container

典型问题

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

docker stats命令介绍

用途:实时显示容器的CPU、内存、网络IO和磁盘IO使用情况,用于性能瓶颈排查。

常用选项

选项说明
--no-stream只输出一次当前状态
--format自定义输出格式

具体示例:

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

# 监控所有容器
docker stats

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

典型问题

六、docker events— 查看Docker事件流

docker events命令介绍

用途:实时输出Docker守护进程产生的事件流,如容器创建、启动、停止、销毁、健康检查失败等。

常用选项

选项说明
--filter按类型、标签、时间等过滤
--since / --until指定时间范围

具体示例:

实时跟踪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个命令定位到原因。建议收藏,遇到容器故障时拿出来照着排查。

到此这篇关于Docker容器排错必知的8个命令详解的文章就介绍到这了,更多相关Docker容器排错命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文