Ctop 容器终端监控工具教程
在搬瓦工 VPS 上运行多个 Docker 容器时,了解每个容器的资源消耗情况至关重要,尤其是内存和 CPU 有限的方案。Ctop 是一款类似于 Linux top 命令的容器监控工具,它以实时刷新的表格形式在终端中展示所有容器的 CPU、内存、网络和磁盘 IO 等指标。本文将介绍如何在搬瓦工 VPS 上安装和使用 Ctop。
一、Ctop 概述
Ctop(Container Top)为容器环境提供了类似 htop 的实时监控体验。与 docker stats 命令相比,Ctop 的界面更加友好,支持排序、过滤和交互式操作。
核心特性:
- 实时资源监控:CPU 使用率、内存占用、网络 IO、磁盘读写。
- 交互式操作:直接在界面中启动、停止、暂停容器。
- 多种排序方式:按 CPU、内存、名称等排序。
- 单容器详情:进入单个容器查看详细指标和日志。
- 多运行时支持:支持 Docker 和 runC 容器运行时。
二、安装 Ctop
请确保已安装 Docker(参考 Docker 安装教程)。
2.1 下载二进制文件(推荐)
# 下载最新版本
curl -Lo /usr/local/bin/ctop https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64
# 添加执行权限
chmod +x /usr/local/bin/ctop
# 验证安装
ctop -v
2.2 通过 Docker 运行
docker run --rm -it \
--name ctop \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest
同样可以设置别名方便使用:
echo 'alias ctop="docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop:latest"' >> ~/.bashrc
source ~/.bashrc
三、界面操作详解
启动 Ctop:
ctop
主界面是一个实时刷新的容器列表,每一行显示一个容器的关键指标:
- NAME:容器名称。
- CID:容器 ID(短格式)。
- CPU:CPU 使用百分比,附带柱状图。
- MEM:内存使用量和限制值。
- NET RX/TX:网络接收和发送数据量。
- IO R/W:磁盘读写数据量。
- PIDS:容器内的进程数。
3.1 快捷键操作
↑/↓或j/k:上下移动选择容器。Enter:进入选中容器的详细视图。s:更改排序字段(CPU/内存/名称/进程数)。f:过滤容器(按名称搜索)。h:显示帮助信息。a:切换显示所有容器或仅运行中的容器。o:打开单容器详情面板。l:查看容器日志。q:退出 Ctop。
3.2 单容器详情视图
选择容器按 Enter 进入详情视图后,可以看到更丰富的信息:
- CPU 和内存使用的实时曲线图。
- 网络 IO 的详细统计。
- 容器的环境变量和挂载信息。
- 容器的端口映射和网络配置。
在详情视图中,你还可以直接执行操作:
# 这些操作在 Ctop 详情视图中通过快捷键完成
# s - 停止容器
# p - 暂停容器
# r - 重启容器
# Esc - 返回主界面
四、高级用法
4.1 命令行参数
# 按 CPU 使用率排序启动
ctop -s cpu
# 按内存使用排序启动
ctop -s mem
# 只显示运行中的容器
ctop -f running
# 反转排序(从大到小)
ctop -s cpu -r
# 指定刷新间隔(秒)
ctop -i 3
4.2 连接远程 Docker
如果你需要从一台搬瓦工 VPS 监控另一台的容器,可以通过设置 DOCKER_HOST 环境变量实现:
# 通过 SSH 隧道连接远程 Docker
ssh -nNT -L /tmp/docker-remote.sock:/var/run/docker.sock user@remote-vps &
# 使用本地 Socket 启动 Ctop
DOCKER_HOST=unix:///tmp/docker-remote.sock ctop
五、与 docker stats 对比
Docker 自带的 docker stats 命令也能查看容器资源使用,但 Ctop 有以下优势:
# Docker 内置的 stats 命令
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"
- Ctop 支持交互式操作,可以直接管理容器。
- Ctop 提供排序和过滤功能。
- Ctop 显示历史趋势图表,而非仅当前快照。
- Ctop 的界面更加美观,信息组织更清晰。
六、搬瓦工 VPS 资源监控建议
搬瓦工 VPS 特别是入门方案内存有限,使用 Ctop 监控容器资源尤为重要:
- 定期检查:每天通过 Ctop 查看各容器的内存占用,避免 OOM(内存不足)导致容器被杀。
- 识别异常:关注 CPU 持续高占用的容器,排查是否存在异常进程。
- 设置内存限制:根据 Ctop 显示的实际使用量,为每个容器设定合理的内存上限。
- 网络流量监控:搬瓦工方案有月流量限制,通过 Ctop 的网络 IO 数据了解各容器的流量消耗。
# 为容器设置内存限制示例
docker run -d --name myapp --memory=256m --memory-swap=512m myimage
# 在 Docker Compose 中设置
# deploy:
# resources:
# limits:
# memory: 256M
七、常见问题
Ctop 启动报错
# 检查 Docker 是否正在运行
systemctl status docker
# 检查 Docker Socket 权限
ls -la /var/run/docker.sock
显示不全或乱码
确保终端窗口足够宽(建议至少 120 列),并设置正确的字符编码:
export LANG=en_US.UTF-8
export TERM=xterm-256color
总结
Ctop 是搬瓦工 VPS 用户监控 Docker 容器资源的得力工具,它轻量、直观、操作简便。建议搭配 LazyDocker 一起使用——Ctop 专注监控,LazyDocker 专注管理。如需 Web 界面查看日志,还可以参考 Dozzle 日志查看器。选购搬瓦工 VPS 请访问 bwh81.net,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣。