直接看状态、查资源、设告警是docker容器监控管理最实用的三件事:用docker ps -a和inspect查状态,docker stats查资源,cadvisor等ui工具可视化,结合健康检查实现自动响应。

直接看状态、查资源、设告警,是 Docker 容器状态监控与管理最实用的三件事。不用堆工具,先理清核心动作,再按需选方案。
快速掌握容器当前状态
日常排查第一步,就是确认容器“活没活着、怎么活的”。最常用的是 docker ps -a,它列出所有容器(含已停的),STATUS 列清楚显示:
- Up 2 minutes:正常运行中,数字代表已运行时长
- Exited (1) 3 hours ago:已退出,括号内是退出码,0 通常表示正常退出,非 0 多为异常终止
- Created:镜像已加载、容器已生成,但还没启动
-
Restarting:Docker 正按重启策略尝试拉起,常见于配置了
--restart=always但主进程反复失败
想精准获取某个容器的状态值(比如写脚本判断),用:docker inspect --format='{{.State.Status}}' container_name
返回就是 running、paused、exited 这类纯文本,方便集成到自动化流程里。
实时观察资源使用情况
光看“是否运行”不够,得知道它“吃多少、跑多快”。docker stats 是最轻量级的实时监控命令:
-
docker stats --no-stream:单次快照,适合定时采集或巡检 -
docker stats(不加参数):持续刷新,直观看到 CPU%、MEM USAGE / LIMIT、NET I/O、BLOCK I/O 变化
如果发现某容器内存持续上涨、CPU 占满却不响应,大概率是应用泄漏或死循环;若网络流量突增,可结合 docker logs container_name 查日志,再定位具体请求或行为。
可视化管理降低操作门槛
命令行高效但易出错,尤其多人协作或非运维人员操作时。图形界面能大幅降低认知负担:
- luci-app-dockerman(OpenWRT 场景):装好插件后,进 Containers 页面,所有容器名称、状态、端口、镜像一目了然,点“Start/Stop/Restart”按钮即可操作,适合家用或边缘设备
- cAdvisor:部署一个容器就能收集宿主机及全部容器的 CPU、内存、网络、磁盘指标,自带 Web 界面(默认端口 8080),支持历史趋势查看,适合中小规模集群
- UI for Docker:轻量级 Web UI,提供容器列表、日志实时滚动、文件浏览器、终端直连等功能,启动简单,适合开发测试环境
结合健康检查与自动响应
Docker 原生支持健康检查,让容器自己“汇报身体状况”:
- 构建镜像时加入:
RUN curl -f http://localhost:8080/health || exit 1
或在docker run中加:--health-cmd="curl -f http://localhost:8080/health || exit 1" --health-interval=30s - 之后用
docker inspect --format='{{.State.Health.Status}}' container_name就能拿到 healthy/unhealthy/starting 等状态 - 配合
docker events --filter 'event=health_status' --since 1h,可监听健康变化事件,再接脚本自动重启或发通知
不复杂但容易忽略











