关于 Lazydocker
Lazydocker 提供交互式的终端界面来管理 Docker 容器、服务、镜像和日志。支持快速浏览容器状态、查看实时日志和资源统计,简化日常容器操作流程。
主要功能
- 01浏览和管理 Docker 容器及服务的状态
- 02查看容器的实时日志输出
- 03监控容器的 CPU 和内存资源使用
适用场景
- 01开发过程中快速调试和监控容器
- 02在生产环境中排查容器运行问题
- 03管理本地 Docker 实例的多个服务
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行lazydocker --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
适用于 MacOS 和 Linux
一个适用于 docker 和 docker-compose 的简易终端 UI,使用 Go 和 gocui 库编写。

赞助者
本项目的维护得益于所有贡献者和赞助者的支持。如果你想赞助本项目,并让你的头像或公司徽标显示在下方,请点击此处。💙
电梯介绍
先吐槽一下:有东西不能用了?也许某个服务挂了。docker-compose ps。没错,就是那个还有问题的微服务。没关系,我重启一下:docker-compose restart。好了,现在再试试。等等,问题还在。嗯。docker-compose ps。好吧,看来这个服务刚启动就立刻停止了。如果我当时在看日志流,应该就能发现,但里面有其他服务的大量日志,很杂乱。我可以用 docker compose logs --follow myservice 只查看这个服务的日志,但每次服务停止,这个命令也会退出,所以每次重启服务时,我都得重新运行这个命令。或者,我可以运行 docker-compose up myservice,然后在那个终端窗口里,如果服务停止了,就再次运行 up;但这样一来,即使我不再关心它的日志,这个服务也会一直占着一个终端窗口。我想,想收回终端空间时,可以按 ctrl+P,Q,但是……等等,不知为什么行不通。我该用 ctrl+C 吗?我记不清这会关闭前台进程,还是会杀掉实际的服务。
真让人头疼!
记住 Docker 命令很难。记住别名稍微容易点。在多个终端窗口中跟踪容器几乎不可能。要是能在一个终端窗口里看到所需的所有信息,常用命令也都能一键运行(还能添加自定义命令),那该多好。Lazydocker 的目标就是让这个梦想成真。
需求
- Docker >= 29.0.0(API >= 1.24)
- Docker-Compose >= 1.23.2(可选)
安装
Homebrew
通常可以在 Homebrew core 中找到 lazydocker formula,但我们建议添加我们的 formula 仓库,以获取频繁更新的版本。它也适用于 Linux。
添加仓库:
brew install jesseduffield/lazydocker/lazydocker
Core:
brew install lazydocker
Scoop(Windows)
你可以使用 scoop 安装 lazydocker:
scoop install lazydocker
Chocolatey(Windows)
你可以使用 Chocolatey 安装 lazydocker:
choco install lazydocker
asdf-vm
你可以使用 asdf-vm 安装 asdf-lazydocker 插件:
设置(仅需一次)
asdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.git
安装 / 升级
asdf list all lazydocker
asdf install lazydocker latest
asdf global lazydocker latest
二进制发布版(Linux/OSX/Windows)
你可以从发布页面手动下载二进制发布版。
自动安装/更新时,请务必验证要通过管道传给 bash 的内容:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
脚本默认会将下载的二进制文件安装到 $HOME/.local/bin 目录,但可以通过设置 DIR 环境变量来更改。
Go
所需 Go 版本 >= 1.19
go install github.com/jesseduffield/lazydocker@latest
所需 Go 版本 >= 1.8,<= 1.17
go get github.com/jesseduffield/lazydocker
Arch Linux AUR
你可以运行以下命令,通过 AUR 安装 lazydocker:
yay -S lazydocker
Docker
-
如果你使用的是 ARM 设备,请点击
-
如果你使用的是 ARM 32 位 v6 架构
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=6 \ https://github.com/jesseduffield/lazydocker.git -
如果你使用的是 ARM 32 位 v7 架构
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=7 \ https://github.com/jesseduffield/lazydocker.git -
如果你使用的是 ARM 64 位 v8 架构
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \ --build-arg GOARCH=arm64 \ https://github.com/jesseduffield/lazydocker.git
-
-
运行容器
docker run --rm -it -v \ /var/run/docker.sock:/var/run/docker.sock \ -v /yourpath:/.config/jesseduffield/lazydocker \ lazyteam/lazydocker-
别忘了将
/yourpath改为你创建的实际路径,用于存储 lazydocker 的配置 -
你也可以使用这个 docker-compose.yml
-
你可能还想创建一个别名,例如:
echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/config:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc
-
如需进行开发,可以使用以下命令构建镜像:
git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
docker build -t lazyteam/lazydocker \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VERSION=`git describe --abbrev=0 --tag` \
.
如果遇到 Docker 内置二进制文件的兼容性问题,可以尝试使用构建参数 --build-arg DOCKER_VERSION="v$(docker -v | cut -d" " -f3 | rev | cut -c 2- | rev)"
重新构建镜像,以确保内置的 docker 二进制文件与主机上的 docker 二进制文件版本一致。
手动安装
你需要先安装 Go
git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
go install
你也可以使用 go run main.go 一步完成编译和运行(这句双关绝对是故意的)
使用方法
在终端中调用 lazydocker。我自己经常使用它,所以为它创建了一个别名,如下所示:
echo "alias lzd='lazydocker'" >> ~/.zshrc
(你可以将 .zshrc 替换为你正在使用的任意 rc 文件)
实用功能
所有功能都只需按一下键即可使用(或点击一下!鼠标支持万岁):
- 一目了然地查看 Docker 或 docker-compose 容器环境的状态
- 查看容器/服务的日志
- 查看容器指标的 ASCII 图表,让你不仅感觉像开发者,看起来也像开发者
- 自定义图表,以测量几乎任何你想要的指标
- 连接到容器/服务
- 重启/移除/重建容器/服务
- 查看给定镜像的祖先层
- 清理占用磁盘空间的容器、镜像或卷
参与贡献
还有很多工作要做!请查看贡献指南。 如果想讨论不适合在此仓库中讨论的内容,欢迎加入 Discord 频道
捐赠
如果你想支持 lazydocker 的开发,可以考虑赞助我(GitHub 将在 12 个月内按 1:1 的比例匹配所有捐款)
社交媒体
如果你想了解我(Jesse)在开发方面的近况,可以在 twitter 上关注我,或在 twitch 上观看我编程。
常见问题
如何编辑配置?
打开 lazydocker,点击左上角的“project”面板,然后按“o”(如果你的编辑器是 vim,则按“e”)。请参阅配置文档
如何让主面板中的文本自动换行?
以后我想将此设为默认选项,但目前自动换行会带来一些 CPU 问题。若要启用自动换行,请使用 gui.wrapMainPanel: true
如何选择文本?
由于我们支持鼠标事件,你需要在拖动鼠标时按住 option,以表明你想选择文本,而不是点击某个项目。或者,你也可以通过 gui.ignoreMouseEvents 配置值禁用鼠标事件。
Mac 用户:请参阅问题 #190,了解其他选项。
为什么看不到容器日志?
默认情况下,我们只显示最近一小时的日志,以免给机器造成太大负担。这可能就是你初次启动 lazydocker 时看不到日志的原因。你可以在配置的 commandTemplates 中覆盖此设置。
如果你在 Docker 容器中运行 lazydocker,有一个已知问题:你无法查看日志或 CPU 使用情况。
替代方案
- docui - Skanehira 抢先做出了 Docker 终端 UI,欢迎查看这个仓库!我认为这两个仓库可以和谐共存:lazydocker 更侧重于管理现有容器/服务,而 docui 更侧重于创建和配置容器/服务。
- Portainer - Portainer 试图解决相同的问题,但它通过浏览器而不是终端访问。它还支持 Docker Swarm。
- 请参阅 Awesome Docker 列表,了解用于 Docker 的类似工具。
















































































