lazydocker - 终端下的Docker管理利器,用于高效处理容器和镜像日常运维
你是否经常在终端里输入docker ps、docker logs、docker exec这类命令?当需要查看某个容器的日志时,要先记下容器ID,然后输入docker logs -f;想要重启容器,又要输入完整的容器名称;如果同时管理多个容器,频繁切换终端窗口和记忆命令参数,会让原本简单的操作变得繁琐。
Lazydocker正是为了解决这个“终端痛点”而生的。它是一个基于终端的Docker管理工具,提供了一个直观的交互式界面,让你可以在一个窗口中完成所有Docker操作。你可以把它理解为Docker命令行的“图形化界面”——但不需要离开终端,也不占用额外的系统资源。它就像是给Docker命令穿上了交互式的外衣,让原本枯燥的命令行操作变得高效而优雅。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | lazydocker |
| GitHub地址 | https://github.com/jesseduffield/lazydocker |
| 项目描述 | The lazier way to manage everything docker |
| 作者 | jesseduffield |
| 开源协议 | MIT License |
| Stars | 50427 |
| Forks | 1592 |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-03-29 |
一、项目介绍
Lazydocker是由Jesse Duffield开发的一款终端用户界面(TUI)工具,旨在简化Docker的管理操作。它的名字本身就透露了设计哲学——让你用“更懒”的方式管理Docker。这里的“懒”不是贬义,而是指用更少的手动输入、更直观的操作,完成更多的任务。
Lazydocker并非取代Docker命令行,而是在其基础上增加了一个交互层。它实时读取Docker守护进程的信息,并以清晰的分栏布局展示在你的终端中。你可以使用键盘快捷键浏览容器列表、查看日志、监控资源、执行命令,所有操作都不需要离开当前的终端窗口。
Lazydocker的核心功能包括:
- 容器管理:查看所有容器的状态、名称、镜像、端口映射、运行时长,支持启动、停止、重启、删除、查看日志、进入容器Shell等操作。
- 镜像管理:列出本地镜像,支持删除、拉取新镜像。
- 卷管理:查看数据卷列表,支持删除无用卷。
- 网络管理:查看Docker网络,支持创建和删除网络。
- 服务管理(Docker Swarm):查看和管理Swarm服务。
- 栈管理:查看和管理Docker Compose栈。
- 资源监控:实时查看CPU和内存使用情况。
Lazydocker的设计深受Lazygit(同作者的Git TUI工具)的影响,拥有类似的操作逻辑和快捷键体系。如果你熟悉Lazygit,上手Lazydocker会非常快。
二、核心优势
Lazydocker相比传统Docker命令行和Web管理面板,有以下独特优势:
- 终端原生体验:Lazydocker运行在终端中,不需要启动浏览器,也不依赖任何外部服务。对于习惯使用终端的开发者来说,这提供了无缝的集成体验。你可以在SSH到远程服务器后直接启动Lazydocker,无需额外配置。
- 极低的资源占用:Lazydocker是一个轻量级的TUI应用,内存占用通常只有几十MB。相比运行一个完整的Web管理面板(如Portainer),它对服务器资源的消耗几乎可以忽略不计。
- 高效的键盘操作:所有操作都可以通过键盘完成,无需鼠标。快捷键设计合理,常用操作如查看日志、进入容器、重启服务都可以一键完成。一旦熟悉快捷键,操作速度会远超命令行和鼠标操作。
- 上下文感知的界面:Lazydocker的界面设计充分考虑了Docker管理的实际需求。主界面分为多个面板,可以同时看到容器列表、日志输出和资源监控。当你选中一个容器时,其他面板会自动更新显示该容器的相关信息,无需额外操作。
- 实时日志流:查看日志时,Lazydocker会实时滚动显示输出,效果类似
docker logs -f,但界面更加清晰。你可以随时暂停滚动、搜索关键词、或者复制日志内容。 - 跨平台支持:Lazydocker支持Windows、macOS和Linux,在所有主流操作系统上都能获得一致的使用体验。
- 开源社区活跃:拥有超过5万颗星,社区非常活跃。开发者响应速度快,新功能不断加入,bug修复及时。
三、适用场景
Lazydocker特别适合以下使用场景:
- 日常开发和调试:当你在开发过程中需要频繁查看容器日志、重启服务、清理镜像时,Lazydocker可以让这些操作变得异常轻松。不需要在多个终端窗口之间切换,一个界面搞定所有。
- 远程服务器运维:通过SSH连接到远程服务器后,直接运行
lazydocker,即可获得一个可视化的管理界面。这比单纯使用命令行更加直观,尤其是在排查问题时,可以同时查看多个容器的状态和日志。 - Docker学习与教学:对于刚接触Docker的初学者,Lazydocker提供了一个直观的学习环境。通过界面可以看到容器、镜像、卷之间的关系,理解Docker的核心概念。
- 快速故障排查:当生产环境出现问题时,时间非常宝贵。Lazydocker让你可以快速查看所有容器的状态,实时跟踪日志,无需记忆复杂的命令和参数。
- 多容器项目管理:如果你使用Docker Compose管理多个服务(如Web、数据库、缓存),Lazydocker可以让你在一个界面中看到所有相关容器的状态,并统一管理它们。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Docker | 容器运行环境 | [https://docs.docker.com/get-docker/] |
Lazydocker的安装方式非常灵活,支持多种主流包管理器,也支持直接下载二进制文件。以下是各平台的详细安装步骤。
Linux安装
使用包管理器
Debian/Ubuntu(使用apt)
# 添加官方仓库
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
# 安装lazydocker
sudo apt update
sudo apt install lazydockerArch Linux
# 使用pacman
sudo pacman -S lazydocker使用Homebrew(Linux)
brew install lazydocker使用二进制文件
# 下载最新版本
curl -LO https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_$(uname -s)_$(uname -m).tar.gz
# 解压
tar xzf lazydocker_*.tar.gz
# 移动到系统路径
sudo mv lazydocker /usr/local/bin/
# 验证安装
lazydocker --versionmacOS安装
使用Homebrew(推荐)
brew install lazydocker使用MacPorts
sudo port install lazydockerWindows安装
使用Scoop
scoop install lazydocker使用Chocolatey
choco install lazydocker使用二进制文件
从GitHub Releases下载Windows版本的exe文件,将其放在系统的PATH路径下(如C:\Windows\System32)。
使用Docker运行(通用方法)
如果你不想在主机上安装Lazydocker,也可以通过Docker运行:
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp:/tmp \
-e TERM=xterm-256color \
jesseduffield/lazydocker为了方便,可以创建一个别名:
alias lazydocker='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -e TERM=xterm-256color jesseduffield/lazydocker'验证安装
安装完成后,在终端中输入lazydocker,如果出现交互式界面,说明安装成功。
五、使用示例
Lazydocker的操作主要通过键盘快捷键完成。下面详细介绍Lazydocker的界面布局、基本操作和实际使用场景。
界面布局
启动Lazydocker后,你会看到一个分栏界面,主要包含以下区域:
+------------------------+--------------------------+
| | |
| 容器列表 | 日志面板 |
| | |
+------------------------+--------------------------+
| | |
| 状态信息 | 命令输出 |
| | |
+------------------------+--------------------------+- 容器列表:显示所有容器的状态、名称、镜像、端口等信息。当前选中的容器会高亮显示。
- 日志面板:显示选中容器的实时日志输出。
- 状态信息:显示当前选中容器的详细信息,如ID、运行时长、环境变量等。
- 命令输出:显示执行命令后的输出结果。
基本快捷键
Lazydocker的快捷键设计非常直观,以下是常用的快捷键:
| 快捷键 | 功能 |
|---|---|
Tab | 切换面板焦点 |
Enter | 进入/确认 |
Esc | 返回上一级 |
q | 退出/关闭 |
/ | 搜索 |
ctrl+c | 退出程序 |
在容器列表面板中:
| 快捷键 | 功能 |
|---|---|
上下箭头 | 选择容器 |
空格键 | 重启容器 |
r | 查看容器日志 |
e | 进入容器Shell(/bin/sh) |
s | 停止容器 |
k | 杀死容器 |
d | 删除容器 |
m | 查看容器监控(CPU/内存) |
c | 执行自定义命令 |
l | 查看日志(在日志面板中显示) |
a | 查看所有容器(包括已停止的) |
在镜像列表面板中:
| 快捷键 | 功能 |
|---|---|
d | 删除镜像 |
p | 拉取镜像 |
t | 给镜像打标签 |
实际使用示例
示例1:查看并调试一个运行异常的容器
假设你的应用容器出现异常,需要查看日志并进行排查:
启动Lazydocker:
lazydocker- 使用上下箭头选择目标容器。
- 日志面板会自动显示该容器的实时日志。如果日志更新太快,可以按
ctrl+s暂停滚动,按ctrl+f搜索关键词。 按
e进入容器的Shell环境,可以直接在容器内执行命令进行调试:# 在容器内 ls -la cat /var/log/app.log exit- 按
Esc返回主界面。
示例2:快速重启一组相关的容器
如果你使用Docker Compose管理多个服务,需要重启整套服务:
- 在Lazydocker主界面,按
Tab键切换到“Stacks”面板(如果使用Compose)。 - 选择你要管理的Compose栈。
- 按
r重启整个栈。 - 按
l查看所有相关容器的日志。
示例3:清理无用的镜像和卷
长时间使用Docker后,可能会积累很多无用的镜像和卷,占用磁盘空间:
- 按
Tab键切换到“Images”面板。 - 选择不需要的镜像,按
d删除。 - 按
Tab键切换到“Volumes”面板。 - 选择无用的卷,按
d删除。 - 对于悬空镜像(没有标签的镜像),可以按
x执行清理命令。
示例4:监控容器资源使用
- 在容器列表中选择一个容器。
- 按
m进入监控模式。 - 你会看到类似
docker stats的实时数据,以图表形式显示CPU和内存使用情况。 - 按
Esc退出监控模式。
示例5:自定义命令
Lazydocker支持执行自定义Docker命令:
- 在容器列表中选择一个容器。
- 按
c弹出命令输入框。 - 输入自定义命令,例如
docker exec -it mycontainer bash。 - 按
Enter执行,输出会显示在命令输出面板中。
高级使用技巧
使用配置文件
Lazydocker支持通过配置文件进行个性化设置。配置文件位于:
- Linux/macOS:
~/.config/lazydocker/config.yml - Windows:
%APPDATA%\lazydocker\config.yml
示例配置文件内容:
gui:
theme:
lightTheme: false
activeBorderColor:
- green
- bold
inactiveBorderColor:
- white
language: 'en'
os:
openCommand: 'open {{filename}}'
commandTemplates:
dockerCompose: 'docker-compose'使用环境变量
你可以通过环境变量调整Lazydocker的行为:
# 设置日志显示的行数
export LAZYDOCKER_LOG_LINES=200
# 设置Docker socket路径
export DOCKER_HOST=unix:///custom/docker.sock与Lazygit配合使用
如果你同时使用Lazygit(Git的TUI工具)和Lazydocker,可以建立肌肉记忆,因为两者的快捷键非常相似。这种统一的操作体验可以显著提升开发效率。
六、常见问题
问题1:启动lazydocker后显示“Cannot connect to the Docker daemon”
这通常表示Lazydocker无法连接到Docker守护进程。请检查:
- Docker服务是否正在运行:
docker version(应该能正常输出) - 当前用户是否有权限访问Docker套接字:
ls -la /var/run/docker.sock,如果用户不在docker组中,需要添加:sudo usermod -aG docker $USER,然后重新登录。
- Docker服务是否正在运行:
问题2:在macOS上安装后无法运行
macOS可能会提示“无法验证开发者”。解决方法:
- 在Finder中找到lazydocker文件(通常在
/usr/local/bin),右键点击,选择“打开”,然后确认允许运行。 - 或者使用Homebrew重新安装:
brew reinstall lazydocker。
- 在Finder中找到lazydocker文件(通常在
问题3:某些快捷键不起作用
确保你的终端模拟器支持完整的键盘输入。部分终端(如Windows的PowerShell)可能无法识别某些快捷键。建议使用:
- Windows:Windows Terminal、WSL终端
- macOS:iTerm2、默认终端
- Linux:大多数终端都可以正常工作
问题4:如何查看所有容器(包括已停止的)
在容器列表面板中,按
a键可以切换显示所有容器(包括已停止的)和仅显示运行中的容器。当前模式会在界面顶部显示。问题5:如何复制日志内容
要复制日志面板中的内容:
- 按
Tab切换到日志面板。 - 使用鼠标选中要复制的内容(如果终端支持鼠标),或者按
ctrl+shift+c(取决于终端)。 - 也可以使用
/搜索后,按ctrl+a全选,然后复制。
- 按
问题6:在远程服务器上使用lazydocker时很慢
如果通过SSH连接远程服务器使用lazydocker,网络延迟可能会导致界面响应慢。这是正常的,因为所有操作都需要通过SSH传输。解决方案:
- 使用更快的网络连接
- 考虑在远程服务器上本地运行lazydocker(即直接在服务器上安装)
- 使用
-X选项启用X11转发(不推荐,会增加延迟)
问题7:如何退出lazydocker
按
q键退出当前面板,多次按q直到完全退出程序。或者直接按ctrl+c强制退出。
七、总结
Lazydocker是一个极具创新的工具,它将Docker管理的效率和体验提升到了一个新的高度。它没有试图取代命令行,而是以“终端即界面”的理念,为Docker操作提供了更直观、更高效的方式。
对于日常使用Docker的开发者来说,Lazydocker的价值在于:
- 节省时间:不需要频繁切换终端窗口,不需要记忆复杂的命令参数,所有操作都在一个界面中完成。
- 降低认知负担:通过可视化的方式展示容器状态、日志和监控数据,让你可以更直观地理解系统的运行状况。
- 提升调试效率:查看日志、进入容器、重启服务都可以一键完成,让问题排查更加迅速。
- 保持终端习惯:对于那些不愿离开终端、不想使用Web管理面板的用户,Lazydocker提供了一个完美的折中方案。
Lazydocker的作者Jesse Duffield同样是Lazygit的作者,两款工具的设计哲学一脉相承——用“懒人”的方式完成复杂的工作。如果你还没有尝试过Lazydocker,强烈建议花几分钟时间安装体验一下。一旦习惯了它的操作方式,你会发现自己的Docker管理工作效率有了质的飞跃。
无论是个人开发环境,还是远程服务器运维,Lazydocker都能成为你工具箱中不可或缺的一员。试试看,也许你会爱上这种“懒人”式的管理方式。
在开发机上用lazydocker,配合tmux分屏,左边终端跑应用,右边终端开lazydocker看日志,开发体验拉满。
The image management is very convenient. I can pull new images, delete old ones, and even tag them, all from the same interface.
最让我惊喜的是它支持鼠标操作。虽然快捷键更快,但偶尔不想记快捷键的时候,点一点也能完成操作。
I'm using this on headless servers where I can't run a GUI. SSH in, run lazydocker, and I have a full Docker management interface. Perfect.
快捷键设计很合理,不需要记太多。常用的就那几个,space重启、e进入、s停止、d删除,几分钟就能记住。