Ubuntu 22.04 安装 ctop 0.7.7 指南
Ubuntu 22.04 安装 ctop 0.7.7 指南:官方二进制、azlux 第三方 apt 仓库(含 jammy 无 Release 文件排障实录)、官方 Docker 镜像三条路径实测,含验证、升级降级、FAQ 与卸载。
Ubuntu 22.04 安装 ctop 0.7.7 指南
目标:在 Ubuntu 22.04 服务器上安装容器监控工具 ctop 0.7.7 并验证可用——本文覆盖官方二进制、azlux 第三方 apt 仓库、官方 Docker 镜像三条安装路径与一条排障实录,全部命令与回显均在 Ubuntu 22.04(x86_64,Docker Engine 29.8.1)实测通过。
一、环境信息
本章列出实测环境的可复现信息。
- 操作系统:Ubuntu 22.04(x86_64),内核 6.8.0-138-generic
- 容器运行时:Docker Engine 29.8.1(API 1.56)
- 目标软件:ctop 0.7.7(当前最新稳定版,官方发布二进制 build
11a1cb1,Go 1.18 编译) - 网络出口:可直连 GitHub 与 packages.azlux.fr;国内网络环境下载慢时建议配置 HTTP 代理
- 版本信息查询日期:2026-10-23(GitHub Releases releases.atom 实查)
二、前置条件
安装前确认以下四点,缺一项都会导致装完用不起来。
-
有运行中的容器可监控:ctop 是容器指标查看器,机器上需装有 Docker Engine 且有容器在跑。验证(实测回显):
docker version --format 'Server: {{.Server.Version}} / API {{.Server.APIVersion}}'Server: 29.8.1 / API 1.56 -
执行用户能访问 docker 套接字:root 用户天然可用;普通用户需加入
docker组:sudo usermod -aG docker <你的用户名> # 改完重新登录生效 ls -l /var/run/docker.socksrw-rw---- 1 root docker 0 Oct 19 15:47 /var/run/docker.sock -
交互终端:ctop 是 TUI 程序,必须在真实 TTY 中运行(SSH 会话即可);定时任务、管道里直接跑会 panic,见"十二、常见问题"Q4。
-
下载通道:方案 A、B 需要访问 github.com / packages.azlux.fr;如果服务器网络受限,先给 curl/apt 配置代理(设置
https_proxy环境变量,或在 apt 配置中使用Acquire::http::Proxy选项)。
三、版本选型说明
ctop 的版本发布节奏与选择依据如下(实查 GitHub,2026-10-23):
| 项目 | 实查结果 |
|---|---|
| 最新稳定版 | v0.7.7(2021-07-01 发布) |
| releases 流最后活动 | 2022-03-22 |
| 发布物(linux-amd64) | ctop-0.7.7-linux-amd64(13606047 字节,Go 1.18 编译) |
| Ubuntu 官方仓库 | 无 ctop 包(Ubuntu 22.04 jammy/universe 均未收录) |
| 第三方 apt 仓库 | azlux(packages.azlux.fr/debian,官方 README 推荐),包名 docker-ctop,版本 0.7.7 |
| 官方容器镜像 | quay.io/vektorlab/ctop:latest(0.7.7,build 59f00dd) |
⚠️ 注意:ctop 自 v0.7.7 后长期未发版,属于低维护项目;三个安装渠道版本一致(0.7.7),不存在"选旧版"问题。查看未来新版本的命令(不硬编码版本号):
curl -s https://github.com/bcicen/ctop/releases.atom | grep -oE '<title>[^<]+</title>' | head -5
<title>Release notes from ctop</title>
<title>v0.7.7</title>
<title>v0.7.6</title>
<title>0.7.5</title>
<title>0.7.4</title>
(实测输出节选,首行为 feeds 标题,其后按时间倒序列版本)
关键差异解读:apt 方案交给包管理器管理、卸载升级干净,但受制于第三方仓库的可用性;二进制方案最直接、零依赖、任何目录可放,推荐作为默认;Docker 镜像方案免安装文件,适合已有 Docker 且不想在宿主机留文件的场景。
四、方案 A:官方二进制安装(推荐)
本章走官方 README 的 Linux 通用安装路径:下载 GitHub Releases 的平台二进制,放到 PATH 目录并加执行权限。ctop 是交互式 TUI 工具、不是常驻服务,无需也不应做 systemd 托管,装完即可运行。
4.1 下载二进制
sudo curl -fL https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /usr/local/bin/ctop
实测下载进度尾部:
100 12.9M 100 12.9M 0 0 9578k 0 0:00:01 0:00:01 --:--:-- 9284k
4.2 加执行权限并验证
sudo chmod +x /usr/local/bin/ctop
ls -l /usr/local/bin/ctop
ctop -v
-rwxr-xr-x 1 root root 13606047 Oct 23 05:07 /usr/local/bin/ctop
ctop version 0.7.7, build 11a1cb1 go1.18
版本回显与 Releases 页标注一致(v0.7.7,build 11a1cb1),安装完成。验证方式就是 ctop -v:能打印版本号即二进制完整可执行。
五、方案 B:azlux 第三方 apt 仓库安装
官方 README 为 Debian/Ubuntu 推荐了 azlux 维护的第三方仓库(包名 docker-ctop)。该仓库实际只发布 Debian 套件,在 Ubuntu 上按 README 原样执行会失败(下文 5.2 给出实录与修正),修正后可正常安装。
5.1 安装依赖与添加仓库源
sudo apt-get install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://azlux.fr/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/azlux-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian bookworm main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo apt-get update
实测 apt update 拉到 azlux 源索引:
Get:1 http://packages.azlux.fr/debian bookworm InRelease [3991 B]
Get:3 http://packages.azlux.fr/debian bookworm/main amd64 Packages [5122 B]
5.2 ⚠️ 排障实录:Ubuntu 直接写 jammy 会报"无 Release 文件"
按官方 README 用 $(lsb_release -cs) 自动填套件名,Ubuntu 22.04 会得到 jammy,实测 apt update 直接报错:
Ign:4 http://packages.azlux.fr/debian jammy InRelease
Err:6 http://packages.azlux.fr/debian jammy Release
E: The repository 'http://packages.azlux.fr/debian jammy Release' does not have a Release file.
原因:azlux 仓库只发布 Debian 套件(bookworm 等),没有 Ubuntu 的 jammy 套件目录。解决:把源里的套件名手工写成 bookworm(如 5.1 所示),apt update 即正常,安装的 0.7.7 在 Ubuntu 22.04 上运行无兼容问题(同一 Go 静态二进制)。
5.3 安装并验证
sudo apt-get install -y docker-ctop
apt-cache policy docker-ctop
dpkg -L docker-ctop
docker-ctop:
Installed: 0.7.7
Candidate: 0.7.7
Version table:
*** 0.7.7 500
500 http://packages.azlux.fr/debian bookworm/main amd64 Packages
/.
/usr
/usr/bin
/usr/bin/ctop
/usr/share
/usr/share/doc
/usr/share/doc/docker-ctop
/usr/share/doc/docker-ctop/changelog.Debian.gz
(apt-cache policy 在未安装时应显示 Installed: (none) / Candidate: 0.7.7,安装后如上。)
包安装的二进制位于 /usr/bin/ctop,验证:
/usr/bin/ctop -v
which -a ctop
ctop version 0.7.7, build 11a1cb1 go1.18
/usr/local/bin/ctop
/usr/bin/ctop
/bin/ctop
which -a 显示两套安装并存时,/usr/local/bin 在 Ubuntu 默认 PATH 中排在 /usr/bin 之前,因此敲 ctop 实际执行的是方案 A 的二进制——两者 build 号相同(11a1cb1),行为一致;若想让 apt 版生效,删除 /usr/local/bin/ctop 即可。
六、方案 C:官方 Docker 镜像运行
不往宿主机放文件的话,可以用官方在 quay.io 发布的镜像,把宿主机 docker 套接字只读挂给容器使用。这是官方 README 给出的标准运行方式:
docker run --rm -ti \
--name=ctop \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest
在交互终端执行即进入 ctop 界面(--rm 退出即删,不留现场)。镜像拉取与版本验证(实测回显,注意镜像内 build 号为 59f00dd,与 Releases 二进制的 11a1cb1 不同但同为 0.7.7):
docker run --rm quay.io/vektorlab/ctop:latest -v
ctop version 0.7.7, build 59f00dd go1.18
⚠️ 注意:TUI 必须带
-ti在交互终端运行;后台/无人值守场景只适合用-v、-h这类非交互参数验证。
七、多方案对比与选择建议
| 维度 | A 官方二进制 | B azlux apt 仓库 | C Docker 镜像 |
|---|---|---|---|
| 版本 | 0.7.7(build 11a1cb1) | 0.7.7(同 build) | 0.7.7(build 59f00dd) |
| 是否需联网 | 需(GitHub) | 需(azlux) | 需(quay.io) |
| 安装方式 | curl + chmod | apt 包管理 | docker run,零落盘 |
| 文件位置 | /usr/local/bin/ctop | /usr/bin/ctop | 不落宿主机盘 |
| 卸载 | rm 一个文件 | apt remove docker-ctop | 镜像 rmi / --rm 自清理 |
| 升级 | 覆盖下载新版 | apt upgrade(随仓库) | 拉 latest 新镜像 |
| 主要风险 | 无包管理记录 | ⚠️ 仓库无 Ubuntu 套件,需手写 bookworm | 每次运行起容器 |
选择建议:可联网服务器优先方案 A(最少依赖、可控);习惯包管理或需要统一卸载记录的选方案 B;宿主机不想留任何文件的选方案 C。
八、安装后配置说明
ctop 安装后无需任何配置即可使用:不带参数运行直接连本机 /var/run/docker.sock(也可用标准 DOCKER_HOST 环境变量改连远程守护进程)。运行期的过滤串、排序字段、列开关等状态可通过界面 S 键保存为配置文件,默认路径 $HOME/.ctop(存在 XDG_* 环境变量时为 $XDG_CONFIG_HOME/ctop/config 或 $HOME/.config/ctop/config)——全部配置项逐键详解见《ctop 0.7.7 配置参数详解》。
九、升级、降级与多版本管理
- 方案 A 升级/降级:从 Releases 页取目标版本 URL 覆盖下载即可,例如未来发布 v0.8.0 后:
curl -fL https://github.com/bcicen/ctop/releases/download/v0.8.0/ctop-0.8.0-linux-amd64 -o /usr/local/bin/ctop(URL 模板固定为https://github.com/bcicen/ctop/releases/download/<版本>/ctop-<版本>-linux-amd64,版本号以 releases 页实查为准);降级同理换回旧版本 URL。 - 方案 B 升级/卸载:apt 只能拿到仓库当前版本(0.7.7);
apt-get install docker-ctop=0.7.7可固定版本。 - 多版本共存:ctop 无内置版本切换机制;利用 PATH 优先级可并存两套(实测
which -a ctop同时列出/usr/local/bin/ctop与/usr/bin/ctop,/usr/local/bin优先生效),需要切换时调整两处文件的存废即可。
十、验证与基础使用
安装完成的最终验收:能打印版本、能打开帮助、能进入监控画面。
ctop -v && ctop -h
-a show active containers only
-connector string
container connector to use (default "docker")
-f string
filter containers
-h display this help dialog
-i invert default colors
-r reverse container sort order
-s string
select container sort field
-v output version information and exit
ctop - interactive container viewer
usage: ctop [options]
options:
available connectors: docker, runc
带初始过滤串启动(实测帧,容器名与数值因机器而异):
ctop -f ctop
ctop - 05:20:36 UTC 3 containers filter: ctop
NAME CPU MEM NET RX/TX IO R/W PIDS UPTIME
⏵ ctop-0.7.7-load 0% 3M / 31G 8K / 126B 0B / 0B 1 14m7s
⏵ ctop-0.7.7-server 0% 156M / 31G 68M / 1M 0B / 0B 28 14m7s
⏵ ctop-0.7.7-web 0% 12M / 31G 250K / 663K 0B / 0B 15 9m54s
按键操作(排序、过滤、单容器视图、exec 等)的完整实测见《ctop 0.7.7 常用 CLI 命令与工具详解》。
十一、常见问题(FAQ)
Q1:普通用户运行报 permission denied 怎么办?
实测现象(非 docker 组用户启动,界面弹错误框并循环重试):
┌ ctop - error ──────────────────────────────────────────────────┐
│ [05:23:08 UTC] Get "http://unix.sock/info": dial unix /var/run/docker.sock: connect: permission denied │
│ [05:23:08 UTC] attempting to reconnect... │
解决:把用户加入 docker 组后重新登录(sudo usermod -aG docker <用户名>);或临时用 root 执行。
Q2:ctop -H tcp://127.0.0.1:2375 报 flag provided but not defined: -H?
ctop 0.7.7 没有 -H 参数(部分旧教程有误),实测回显与退出码:
flag provided but not defined: -H
Usage of ctop:
-a show active containers only
-connector string
container connector to use (default "docker")
-f string
filter containers
-h display this help dialog
-i invert default colors
-r reverse container sort order
-s string
select container sort field
-v output version information and exit
退出码 2。连远程主机改用标准环境变量:DOCKER_HOST=tcp://<主机>:2375 ctop(或 ssh 隧道套接字路径),与 Docker CLI 约定一致。
Q3:azlux 源 apt update 报 does not have a Release file?
见 5.2 排障实录:Ubuntu 套件名(jammy 等)在 azlux 仓库不存在,把 /etc/apt/sources.list.d/azlux.list 里的套件名改为 bookworm 后 apt-get update 即可。
Q4:在脚本/管道里运行 ctop 直接 panic?
实测回显(退出码 2):
panic: open /dev/tty: no such device or address [recovered]
panic: open /dev/tty: no such device or address
原因:TUI 必须独占终端。解决:交互 SSH 会话中运行;脚本取数改用 docker stats --no-stream。
Q5:-connector runc 启动后一直弹错误框?
机器上没有 runC 状态目录所致,实测弹框内容:open /run/runc: no such file or directory。监控 Docker 容器用默认 -connector docker 即可;runC 连接器仅在直接管理 runC 容器且能访问 /run/runc 的环境使用。
十二、卸载与清理
按安装方案对应卸载,互不影响:
sudo rm -f /usr/local/bin/ctop # 方案 A
sudo apt-get remove -y docker-ctop # 方案 B
docker rmi quay.io/vektorlab/ctop:latest # 方案 C(--rm 运行的实例退出时已自删)
rm -f ~/.ctop # 运行期保存过的配置文件(若有)
卸载验证:which -a ctop 无输出且 ctop -v 提示 command not found 即清理干净。
十三、参考链接
- 官方 README(各平台安装方式):https://github.com/bcicen/ctop#readme
- Releases 下载页(版本与二进制清单):https://github.com/bcicen/ctop/releases
- azlux 仓库:https://packages.azlux.fr/
- 官方 Docker 镜像:https://quay.io/repository/vektorlab/ctop
- 站内相关:《ctop 介绍与选型指南》、《ctop 0.7.7 配置参数详解》、《ctop 0.7.7 常用 CLI 命令与工具详解》