SorryToPerson logo
返回
Docker2026-04-15·7 分钟

Docker 运行时与监控

介绍 Docker 容器运行时的资源限制、监控命令和常见指标分析方法。

Docker 运行时与监控

1. 资源限制

bash
docker run -d --name app --memory 512m --cpus 1.0 myapp:latest
  • --memory 限制最大内存。
  • --cpus 限制 CPU 配额。
  • 还可用 --memory-swap--cpu-shares 等细化控制。

2. 查看实时指标

bash
docker stats
  • 显示 CPU、内存、网络、磁盘 I/O 使用情况。
  • 可指定容器名或 ID 进行过滤。

3. 容器内监控工具

  • top:查看进程列表。
  • free -m:查看内存使用。
  • df -h:查看磁盘空间。
bash
docker exec -it app top
docker exec -it app free -m
docker exec -it app df -h

4. 日志集中管理

  • Docker 日志驱动可换成 json-filesyslogfluentdgelf
  • 生产环境建议将日志发送到集中平台。
bash
docker run -d --log-driver=syslog --log-opt syslog-address=udp://localhost:514 myapp:latest

5. 容器生命周期与重启策略

bash
docker run -d --restart unless-stopped myapp:latest
  • no:不自动重启。
  • on-failure:失败时重启。
  • always:总是重启。
  • unless-stopped:除非手动停止。

6. 指标与告警建议

  • 监控 CPU 使用率、内存使用率、重启次数。
  • 关注 OOM、进程崩溃、I/O 突增等异常。
  • 集成 Prometheus、Grafana、ELK、Datadog 等系统。

7. 诊断常见问题

  • 资源耗尽:检查 docker stats 并排查是否有内存泄漏。
  • IO 瓶颈:使用 iotopdocker stats 的磁盘指标。
  • 网络延迟:检查容器网络吞吐与 DNS 解析。
Docker运行时监控