LazyDocker:基于终端UI管理Docker
什么是 LazyDocker ?
LazyDocker
是适用于Docker
和Docker Compose
的新的免费开源的终端UI
,用于显示Docker
或Docker-compose
容器的状态,日志以及重新启动/删除/重建容器等,采用Go
语言编写,使用了gocui
库。
在 Linux
服务器上管理 Docker
容器时,通常有两种选择:安装或部署基于 Web
的 GUI
或从命令行管理容器,而 LazyDocker
介于两者之间,采用了基于 terminal
的 简单 UI
安装
与容器相关的应用,都需要绑定挂载 /var/run/docker.sock
,包括我们之前安装的 portainer
、watchtower
,Glances
,Netdata
等。
什么是 /var/run/docker.sock
?
/var/run/docker.sock
是Docker API
的主要入口,简单地说,它是Docker
守护进程(Docker daemon
)默认监听的Unix
域套接字(Unix domain socket
),容器中的进程可以通过它与Docker
守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
但是群晖的 Docker
管理器并不支持挂载 /var/run/docker.sock
文件,所以这次我们需用命令行来安装
命令行安装还是比较简单的,用 SSH
客户端连上群晖,执行下面👇的命令
老苏常用的
SSH
客户端主要是Finalshell
和PuTTY
1 | # 在 docker 中新建目录 lazydocker |
也可以直接进 终端机
使用
使用
键盘和鼠标都支持 LazyDocker
界面上的导航操作
其中每个命令都有一个预定义的键,用于快速执行常用操作。官网提供了一个多语言的键值说明,不过没有中文,只能凑合着看看英文的:https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md
可一键实现:
- 查看
Docker
或Docker-Compose
容器环境的状态; - 查看容器/服务日志;
- 查看容器
ASCII
图; - 定制图表以查看更详细的信息;
- 绑定容器/服务;
- 重启/移除/重建容器或服务;
- 查看给定镜像的父层;
- 修改占用磁盘空间的容器、镜像或卷;
自定义设置
在 lazydocker
中有个 config.yml
文件,但是现在打开只有一行
1 | reporting: "on" |
在块 commandTemplates
和 customCommands
配置中可以修改命令,也可以补充您自己的命令。在 ➡️ https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md 有详细的说明。
不过老苏改了半天并没发现有什么明显的变化,可能是因为本身就是
Default
,也没有再继续深入研究下去😅
小结
命令行管理容器,需要记命令,LazyDocker
将其简化为了快捷键,所以难度上比命令行方式简单得多。
但是相比基于 Web
的 GUI
界面,显然易用性还是有差距的,但胜在灵活。
老苏个人觉得如果在 linux
上,LazyDocker
可能是一个不错的选择,但是在群晖上似乎没什么必要。
另外也不建议用 Docker
方式安装 LazyDocker
,会看不到日志或 CPU
使用率,这是一个已知的 Bug
。
参考文档
jesseduffield/lazydocker: The lazier way to manage everything docker
地址:https://github.com/jesseduffield/lazydockerA Look at Lazydocker, a Cursor-Based Docker Management Tool – The New Stack
地址:https://thenewstack.io/a-look-at-lazydocker-a-cursor-based-docker-management-tool/