TUI界面容器管理工具Oxker

什么是 Oxker ?

Oxker 是一个基于文本的用户界面,用于查看 Docker 容器的信息和统计数据。一目了然,Oxker 提供了容器列表、其当前状态、对系统资源(CPU、内存)的影响、容器 ID、镜像名称、大小等。该应用程序还提供用于导航各种面板和执行基本命令(暂停、重新启动、停止、删除)的控件。

什么是 TUI ?

TUI 是指文本用户界面(Text-based User Interface),通过文本实现交互窗口展示内容,定位光标和鼠标实现用户交互。

Oxker 和老苏之前介绍的 LazyDocker 属于同一类工具

文章传送门:LazyDocker:基于终端UI管理Docker

安装

在群晖上以 Docker 方式安装。

容器下载

在注册表中搜索 oxker ,选择第一个 mrjackwills/oxker,版本选择 latest

本文写作时, latest 版本对应为 0.3.2

也可以用命令行下载

1
2
下载容器
docker pull mrjackwills/oxker:latest

如果下不动,可以试试通过 dockerproxy 下载,会多出两步

1
2
3
4
5
6
7
8
# 代理拉取镜像
docker pull dockerproxy.com/mrjackwills/oxker:latest

# 重命名镜像
docker tag dockerproxy.com/mrjackwills/oxker:latest mrjackwills/oxker:latest

# 删除代理镜像
docker rmi dockerproxy.com/mrjackwills/oxker:latest

映像 中能看到下载的镜像,因为是采用 Rust 开发的,所以文件非常小

命令行运行

什么是 /var/run/docker.sock ?

/var/run/docker.sock 是 Docker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

title

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

但是群晖的 Docker 管理器并不支持挂载 /var/run/docker.sock 文件,所以这次我们需用命令行来安装

命令行安装还是比较简单的,用 SSH 客户端连上群晖,执行下面👇的命令

老苏常用的 SSH 客户端主要是 Finalshell 

1
2
3
4
5
6
7
# 运行容器
docker run -it \
--rm \
--name oxker \
--pull=always \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
mrjackwills/oxker

其中:

  • -i :以交互模式运行容器,通常与 -t 同时使用;
  • -t :为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –rm :在容器退出时就能够自动清理容器内部的文件系统,--rm 选项不能与 -d 同时使用;
  • –pull=always :始终尝试拉取映像,即使映像存在于本地。如果拉取失败,则会产生错误;
--pull 描述
(没有设置) (默认)如果本地不存在则拉取镜像
--pull=missing 和上面默认的一样
--pull=never 不拉取镜像,但如果镜像不存在则产生错误
--pull=always 始终尝试拉取映像,即使映像存在于本地:
如果拉取失败,则会产生错误

回车之后,就能看到 TUI 界面了

h 键显示帮助

按键不多,使用还是很简单的

button result
( tab ) or ( shift+tab ) 切换面板,单击面板也会更改所选面板
( ↑ ↓ ) or ( j k ) or ( PgUp PgDown ) or ( Home End ) 更改选定面板中的选定行,鼠标滚动也会更改选定行
( enter ) 执行选定的 docker 命令
( 1-9 ) 按标题对容器进行排序,单击标题也会对所选列进行排序
( 0 ) 停止排序
( h ) 切换帮助菜单
( m ) 切换鼠标捕获 - 如果禁用,则可以选择屏幕上的文本
( q ) 退出

参考文档

mrjackwills/oxker: A simple tui to view & control docker containers
地址:https://github.com/mrjackwills/oxker