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% 的折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。