温馨提示×

ubuntu docker如何监控

小樊
39
2026-10-16 01:34:24
栏目: 智能运维

在 Ubuntu 上使用 Docker 时,监控可以从宿主机层面、容器层面、以及可视化/告警方案几个维度来做。下面按实用程度给你一套常见方案。


一、基础命令(最常用)

1. 查看容器状态

docker ps
docker ps -a

2. 实时资源占用(类似 top)

docker stats

显示:

  • CPU
  • 内存
  • 网络 IO
  • 磁盘 IO

按 Ctrl+C 退出。

3. 查看容器日志

docker logs -f 容器名或ID

常用参数:

docker logs -f --tail 100 容器ID

二、宿主机层面监控(Ubuntu)

Docker 容器本质是进程,可用 Linux 工具:

top
htop
iotop
iftop

安装 htop:

sudo apt install htop

三、Docker 自带监控接口(高级)

1. Docker Events

docker events

用于监听:

  • 容器启动/停止
  • 镜像拉取
  • 网络变化

四、可视化监控方案(推荐)

✅ 方案一:cAdvisor + Prometheus + Grafana(最主流)

1. 启动 cAdvisor

docker run -d \
  --name=cadvisor \
  -p 8080:8080 \
  -v /:/rootfs:ro \
  -v /var/run:/var/run:ro \
  -v /sys:/sys:ro \
  -v /var/lib/docker/:/var/lib/docker:ro \
  gcr.io/cadvisor/cadvisor

访问:

http://服务器IP:8080

2. Prometheus 抓取 cAdvisor

scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['IP:8080']

3. Grafana 展示

  • 导入 Docker 监控模板(如 ID:893)
  • 可视化 CPU / 内存 / 网络

✅ 方案二:Portainer(最简单)

docker run -d \
  -p 9000:9000 \
  --name portainer \
  -v /var/run/docker.sock:/var/run/docker.sock \
  portainer/portainer

访问:

http://IP:9000

功能:

  • 容器状态
  • 资源使用
  • 日志查看
  • 远程管理

五、告警方案

  • Prometheus + Alertmanager
  • Grafana Alert
  • 第三方:
    • Datadog
    • Zabbix(支持 Docker)

六、生产环境建议

✅ 必做:

  • docker stats / cAdvisor
  • 日志集中(ELK / Loki)
  • 资源限制:
docker run -m 512m --cpus=1

✅ 不建议:

  • 长期只看 docker ps

如果你愿意,可以告诉我:

  • 是个人服务器还是生产环境?
  • 是否已有 Prometheus / Grafana?
  • 更关心 CPU、内存还是网络?

我可以直接给你一套可复制的 docker-compose 监控方案。

0 踩