温馨提示×

ubuntu docker怎样监控

小樊
44
2026-10-01 10:20:15
栏目: 智能运维

在 Ubuntu 上使用 Docker 时,监控可以从系统层、容器层、日志、可视化工具几个维度来做。下面按常用程度给你一个清晰清单。


一、最基础的 Docker 自带命令

1. 实时查看容器资源占用

docker stats

显示:

  • CPU
  • 内存
  • 网络 I/O
  • 磁盘 I/O(部分版本)

按 Ctrl+C 退出。

2. 查看运行中的容器

docker ps

3. 查看容器日志

docker logs -f 容器名或ID

加 -f 实时跟踪。


二、Ubuntu 系统级监控(配合 Docker)

1. 系统资源

top
htop        # 推荐,需安装
sudo apt install htop

2. 磁盘

df -h
du -sh /var/lib/docker

Docker 默认数据在:

/var/lib/docker

三、容器详细监控(推荐)

1. ctop(类 top 的 Docker 监控)

sudo apt install ctop
ctop

可看到每个容器实时状态。

2. 使用 docker inspect

docker inspect 容器ID

查看:

  • 挂载
  • 网络
  • 资源限制

四、日志集中监控

1. journald(Ubuntu 默认)

journalctl -u docker.service

2. 配置 Docker 日志大小(防止爆盘)

/etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

重启:

sudo systemctl restart docker

五、可视化监控方案(生产推荐)

1. Prometheus + Grafana(最主流)

架构:

node-exporter → Prometheus → Grafana
cadvisor      ↗

快速示例(docker-compose):

version: '3'
services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker:/var/lib/docker:ro
    ports:
      - 8080:8080

  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090

  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000

六、轻量级一体方案

1. Portainer(Web 管理 + 监控)

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

浏览器访问:

http://IP:9000

七、常见监控指标建议

重点关注:

  • CPU 使用率
  • 内存是否 OOM
  • 磁盘是否写满
  • 容器重启次数
  • 网络流量异常

如果你愿意,我可以:

  • 给你一套 Ubuntu + Docker 监控最小实践
  • 或针对 生产 / 开发 / 家庭 NAS 场景推荐方案
  • 或直接帮你写 docker-compose 监控模板

你现在是哪种使用场景?

0 踩