基础命令行监控
在Debian系统上,可通过Docker自带命令行工具快速监控容器状态及资源使用:
docker ps 列出所有运行中的容器;docker ps -a 包括已停止的容器;docker ps -q 仅显示运行中容器的ID。docker stats 实时展示所有容器的CPU、内存、网络I/O及磁盘I/O使用率;支持指定容器ID或名称(如 docker stats <container_name>)查看特定容器。docker inspect <container_id> 提供容器的完整配置(如网络、挂载卷、环境变量)、状态及运行历史等深度信息。sudo systemctl status docker 查看Docker服务是否运行;sudo journalctl -u docker.service 查看Docker守护进程的日志,用于排查服务异常。轻量级交互式监控工具
docker run --rm -ti --volume /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop:latest,运行后通过键盘快捷键(如q退出、↑↓切换容器)操作。第三方可视化监控方案
http://<host>:8080)展示,同时支持将数据导出至InfluxDB。安装:docker pull google/cadvisor,运行:docker run -d --name=cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro google/cadvisor。docker pull tutum/influxdb,运行:docker run -d -p 8086:8086 --name=influxdb -v /data/docker/influxdb:/var/lib/influxdb tutum/influxdb。docker pull grafana/grafana,运行:docker run -d -p 3000:3000 --name=grafana -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root grafana/grafana,访问http://<host>:3000登录后配置数据源并导入仪表盘。sudo apt-get install prometheus,配置文件(/etc/prometheus/prometheus.yml)中添加cAdvisor job:scrape_configs:
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
http://<host>:3000配置Prometheus为数据源,导入官方Docker监控模板(如ID: 193)即可查看预设指标。自动化与辅助工具
docker run -d --name=watchtower --restart=always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower,默认监控所有容器,可通过--container参数指定特定容器。