lazydocker适用于docker管理的简单终端UI

docker 和 docker-compose 的简单终端 UI,使用 Go 编写,带有 gocui 库。

超酷功能

一切尽在一键操作(或点击一下!鼠标支持 FTW):

  • 一目了然地查看 docker 或 docker-compose 容器环境的状态
  • 查看容器/服务的日志
  • 查看容器指标的 ASCII 图表,让您不仅能感受到开发者的魅力,还能看起来像个开发者
  • 自定义这些图表以测量几乎任何您想要的指标
  • 连接到容器/服务
  • 重启/移除/重建容器/服务
  • 查看给定镜像的祖先层
  • 修剪占用磁盘空间的容器、镜像或卷

要求

  • Docker >= 1.13(API >= 1.25
  • Docker-Compose >= 1.23.2(可选)

安装

Homebrew

通常情况下,“lazydocker”方案可以在 Homebrew 核心中找到,但我们建议您使用我们的方案来获取经常更新的方案。它也适用于 Linux。

Tap:

sh 复制代码
brew install jesseduffield/lazydocker/lazydocker

Core:

sh 复制代码
brew install lazydocker

Scoop (Windows)

您可以使用 scoop 安装 lazydocker

sh 复制代码
scoop install lazydocker

Chocolatey (Windows)

您可以使用 Chocolatey 安装 lazydocker

sh 复制代码
choco install lazydocker

asdf-vm

您可以使用 asdf-vm 安装 asdf-lazydocker 插件

设置(一次)

sh 复制代码
asdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.git

安装/升级

sh 复制代码
asdf list all lazydocker
asdf install lazydocker latest
asdf global lazydocker latest

Binary Release (Linux/OSX/Windows)

您可以从发布页面手动下载二进制版本。 自动安装/更新,请务必验证您输入到 bash 的内容:

sh 复制代码
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

该脚本默认将下载的二进制文件安装到“$HOME/.local/bin”目录,但可以通过设置“DIR”环境变量来更改。

Go

所需 Go 版本 >= 1.19

sh 复制代码
go install github.com/jesseduffield/lazydocker@latest

所需 Go 版本 >= 1.8, <= 1.17

sh 复制代码
go get github.com/jesseduffield/lazydocker

Arch Linux AUR

您可以使用 AUR 安装 lazydocker,运行以下命令:

sh 复制代码
yay -S lazydocker

Docker

  1. 如果您使用的是 ARM 设备
  • 如果您使用的是 ARM 32 位 v6 架构
sh 复制代码
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 架构
sh 复制代码
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 架构
sh 复制代码
docker build -t lazyteam/lazydocker \
--build-arg BASE_IMAGE_BUILDER=arm64v8/golang \
--build-arg GOARCH=arm64 \
https://github.com/jesseduffield/lazydocker.git
  1. 运行容器
sh 复制代码
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
  • 您可能需要创建一个别名,例如:
sh 复制代码
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

对于开发环境,您可以使用以下命令构建镜像:

sh 复制代码
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

(你可以用你正在使用的任何 rc 文件替换 .zshrc)

常见问题解答

如何编辑我的配置?

打开 lazydocker,点击左上角的“项目”面板,然后按“o”(如果您的编辑器是 vim,则按“e”)。请参阅 配置文档

如何让文本在主面板中自动换行?

我希望将来将此设置为默认设置,但目前换行存在一些 CPU 问题。如果您想启用换行,请使用 gui.wrapMainPanel: true

如何选择文本?

由于我们支持鼠标事件,因此您需要在拖动鼠标时按住 Option 键,以指示您正在尝试选择文本而不是点击其他内容。或者,您可以通过 gui.ignoreMouseEvents 配置值禁用鼠标事件。

Mac 用户:请参阅 问题 #190 了解其他选项。

为什么我看不到容器的日志?

默认情况下,我们只显示过去一小时的日志,这样就不会给机器带来太大的压力。这可能是您首次启动 lazydocker 时看不到日志的原因。您可以在配置的 commandTemplates 中覆盖此设置。

如果您在 Docker 容器中运行 lazydocker,则无法查看日志或 CPU 使用率是一个已知 bug。

替代方案

  • docui - Skanehira 抢先一步制作了一个 docker 终端 UI,所以一定要看看这个仓库!不过,我认为这两个仓库可以兼容:lazydocker 更侧重于管理现有的容器/服务,而 docui 更侧重于创建和配置它们。
  • Portainer - Portainer 尝试解决同样的问题,但它是通过浏览器而不是终端访问的。它也支持 Docker Swarm。
  • 请参阅 Awesome Docker 列表,了解与 Docker 配合使用的类似工具。

关于项目

一个适用于 docker 和 docker-compose 的简单终端 UI,使用 Go 和 gocui 库编写。可以一目了然地查看 docker 或 docker-compose 容器环境的状态,查看容器/服务的日志。
MIT
Golang
46,616
1462
273
2019-05-18
2025-10-11

增长趋势 - stars