Docker容器在Ubuntu上如何进行性能监控
导读:Ubuntu 上 Docker 容器性能监控实操指南 一 快速上手 Docker 自带工具 实时资源监控:运行 docker stats,查看所有运行中容器的 CPU、内存、网络 I/O、块 I/O;如需查看单个容器并减少输出,可使用 d...
Ubuntu 上 Docker 容器性能监控实操指南
一 快速上手 Docker 自带工具
- 实时资源监控:运行 docker stats,查看所有运行中容器的 CPU、内存、网络 I/O、块 I/O;如需查看单个容器并减少输出,可使用 docker stats < 容器名或ID> --no-stream。
- 容器与主机视角补充:
- docker ps / docker ps -a 查看容器状态;
- docker top < 容器名或ID> 查看容器内进程;
- docker system df 查看镜像、容器、卷等占用;
- docker inspect < 容器名或ID> 查看详细配置与状态;
- docker logs < 容器名或ID> 结合日志定位性能异常。
- 系统级进程视角:安装并使用 htop(sudo apt-get install -y htop)观察宿主机整体资源与 Docker 相关进程负载。
二 可视化与长期存储方案 Prometheus + cAdvisor + Grafana
- 组件分工:
- cAdvisor 采集容器 CPU、内存、网络、磁盘 等指标;
- Prometheus 定时抓取并存储指标;
- Grafana 进行可视化与告警。
- 部署步骤(示例命令,按需持久化与鉴权):
- 启动 cAdvisor(推荐 host 网络与必要权限):
docker run -d --name=cadvisor --privileged --net=host google/cadvisor:latest
访问 http://< 宿主机IP> :8080 查看原生页面。 - 启动 Prometheus(挂载配置):
docker run -d --name=prometheus -p 9090:9090
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
prom/prometheus
在 /opt/prometheus/prometheus.yml 中添加抓取任务:
scrape_configs:- job_name: ‘docker’
static_configs:
- targets: [‘< 宿主机IP> :8080’]
- job_name: ‘docker’
static_configs:
- 启动 Grafana:
docker run -d --name=grafana -p 3000:3000 grafana/grafana
访问 http://< 宿主机IP> :3000,添加 Prometheus(http://< 宿主机IP> :9090) 为数据源,导入 Docker 相关仪表板(如容器监控模板)并配置告警通道(邮件、Slack、Webhook 等)。
- 启动 cAdvisor(推荐 host 网络与必要权限):
三 其他可选工具
- Weave Scope:自动生成容器拓扑与关系图,便于排查依赖与瓶颈。
- Zabbix:企业级监控平台,支持 Docker 监控与告警。
- Datadog / New Relic:商业化 SaaS 方案,开箱即用、告警与报表完善。
- ELK Stack(Elasticsearch, Logstash, Kibana):日志集中与可视化,辅助性能问题定位。
四 常见问题与排障
- docker stats 卡住或无响应:
- 检查 Docker 服务状态:sudo systemctl status docker;
- 必要时重启 Docker:sudo systemctl restart docker;
- 确认宿主机资源未耗尽(CPU、内存、磁盘 I/O)。
- cAdvisor 端口与网络:默认暴露 8080;如使用 –net=host 可直连宿主机网络,注意云主机安全组与防火墙放行。
- Prometheus 抓取失败:核对 targets 地址与端口、网络连通性、容器与宿主机时间同步(NTP)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Docker容器在Ubuntu上如何进行性能监控
本文地址: https://pptw.com/jishu/749118.html
