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 -h4. 日志集中管理
- Docker 日志驱动可换成
json-file、syslog、fluentd、gelf。 - 生产环境建议将日志发送到集中平台。
bash
docker run -d --log-driver=syslog --log-opt syslog-address=udp://localhost:514 myapp:latest5. 容器生命周期与重启策略
bash
docker run -d --restart unless-stopped myapp:latestno:不自动重启。on-failure:失败时重启。always:总是重启。unless-stopped:除非手动停止。
6. 指标与告警建议
- 监控 CPU 使用率、内存使用率、重启次数。
- 关注 OOM、进程崩溃、I/O 突增等异常。
- 集成 Prometheus、Grafana、ELK、Datadog 等系统。
7. 诊断常见问题
- 资源耗尽:检查
docker stats并排查是否有内存泄漏。 - IO 瓶颈:使用
iotop或docker stats的磁盘指标。 - 网络延迟:检查容器网络吞吐与 DNS 解析。
Docker运行时监控