1. 命令行工具:基础实时监控
docker stats:Docker自带的实时资源监控命令,可展示所有运行中容器的CPU使用率、内存占用、网络I/O(接收/发送速率)、磁盘I/O等指标。支持指定容器ID或名称(如docker stats container_name)查看特定容器,按Ctrl+C退出实时模式。systemd-cgtop:针对由systemd管理的cgroup(CentOS 7及以上默认使用systemd),可查看包括Docker容器在内的所有cgroup资源使用情况(CPU、内存、任务数等)。直接运行命令即可,无需额外安装,适合快速了解系统级容器资源分配。docker ps/docker ps -a:docker ps列出所有运行中的容器(显示容器ID、名称、镜像、创建时间、状态等);docker ps -a包含未运行的容器(如已停止的容器),帮助确认容器生命周期状态。docker top:查看容器内部运行的进程信息(包括PID、用户、CPU占用、内存占用、运行时间等),用于排查容器内进程异常(如某个进程占用过高资源)。2. 第三方监控工具:全面可视化与告警
cAdvisor(Docker内置的容器指标收集器,自动暴露容器资源指标)或node_exporter(收集主机指标)抓取指标,支持基于 PromQL(Prometheus Query Language)的灵活查询和告警规则(如CPU使用率超过80%触发告警)。8080)查看实时数据,同时支持将指标导出给Prometheus等外部系统。适合需要快速部署和基础容器监控的场景。3. Docker API:程序化监控
Docker提供RESTful API(默认端口2375,需开启远程访问并配置TLS证书以保证安全),可通过curl等工具获取容器状态信息。例如:
curl http://localhost:2375/containers/json(返回JSON格式的容器ID、名称、状态等);curl http://localhost:2375/containers/container_id/json(包含容器的配置、资源限制、网络设置等)。4. 系统监控命令:辅助排查
free -h:查看系统内存使用情况(包括总内存、已用内存、空闲内存、缓存等),帮助判断容器是否占用过多内存导致主机内存不足;df -h:查看磁盘空间使用率(包括文件系统、已用空间、可用空间、使用百分比),避免容器日志或数据卷占满磁盘;uptime:查看系统1分钟、5分钟、15分钟平均负载,判断系统是否过载(负载值超过CPU核心数可能影响容器性能)。