Project Icon

lazydocker

Go语言开发的Docker终端管理工具

lazydocker是一个基于Go语言的Docker和docker-compose终端界面工具,提供容器状态监控、日志查看和操作执行等功能。该项目简化了Docker管理流程,提升开发效率。支持多种安装方式,拥有活跃的开源社区支持。

一个简单的终端UI,适用于docker和docker-compose,使用Go语言和gocui库编写。

CI Go Report Card GolangCI GoDoc GitHub repo size GitHub Releases GitHub tag homebrew

Gif

演示

赞助商

本项目的维护得益于所有贡献者赞助商。如果您想赞助这个项目并在下方显示您的头像或公司logo,请点击这里。💙

Mark LussierDean HerbertPeter BjorklundReilly WoodOliver GüntherPawan DhananjayBartłomiej DachDavid KarlssonCarsten GehlingCEUKAkos PutzXeteraHolden LucasChau TranmatejciktheAverageDev (Luca Tumedei)Ivan ZaitsevNicholas CloudLightQuantumGabriel SaillardAliaksandr StelmachonakBurgy BenjaminJoe KlemmerTobias LütkeBen BeaumontHollyJames SantucciJeff ForcierMaciej T. NowakFarzad MajidfayyazYuryAndreas KurthBraden SteffaniakJordan GillardSebastianGeorge SpanosFrantisek StankoAndy SlezakMartin KockIllarion KoperskiJesse AlamaCodacyBrettJan HeijmansKevin
Nowaldsem pruijsOmar Luq Ethan LiBrian MacAskillMaxinbrJan ZenknerVictor AremuIgor RamazanovElliott Maguiren8n - 工作流自动化kaleb allmonJosh ThomasJJFrederick MorlockDarren CraineMaximilian LangenfeldNurzhanDavis BulsGrec MarcsainuMarc Güell Segarra克里斯·奥尔森弗拉基米尔·波波夫尼尔·兰伯特肖恩·加伍德大卫·海涅迈尔·汉森瓦扬·吉米

## 梗概

小吐槽来了:某些东西不工作了?也许是某个服务宕机了。docker-compose ps。没错,就是那个仍有bug的微服务。没问题,我只需重启它:docker-compose restart。好了,现在再试一次。哦等等,问题依然存在。嗯。docker-compose ps。看来服务刚启动就立即停止了。如果我一直在读取日志流的话,可能早就知道了,但其他服务的日志太杂乱了。我可以用docker compose logs --follow myservice只获取那个服务的日志,但每次服务宕机时这个命令也会终止,所以我每次重启服务时都得重新运行这个命令。另一种选择是运行docker-compose up myservice,这样如果服务宕机了,我可以在那个终端窗口再次up它,但现在即使我不再关心它的日志,这个服务也会占用一个终端窗口。我猜当我想收回终端空间时可以用ctrl+P,Q,但是...等等,这不知为何不起作用。我该用ctrl+C吗?我记不清这是关闭前台进程还是杀死实际服务。

真是让人头疼!

记住docker命令很难。记住别名稍微容易一些。在多个终端窗口中跟踪容器几乎是不可能的。如果你能在一个终端窗口中获得所需的所有信息,每个常用命令只需按一个键就能执行(还能添加自定义命令),那该多好。Lazydocker的目标就是让这个梦想成真。

要求

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

安装

Homebrew

通常可以在Homebrew核心仓库中找到lazydocker配方,但我们建议你使用我们的配方以获得更频繁的更新。它也适用于Linux。

使用Tap:

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

Docker拉取次数 Docker星标 Docker自动化

  1. 如果你使用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
      

  2. 运行容器

    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二进制文件版本匹配。

使用方法

在终端中调用lazydocker。我个人经常使用它,所以我为它创建了一个别名,如下所示:

echo "alias lzd='lazydocker'" >> ~/.zshrc

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

酷炫功能

所有操作都只需一次按键(或一次点击!支持鼠标操作):

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

贡献

还有很多工作要做!请查看贡献指南。 对于贡献者讨论不适合在此仓库中讨论的事项,请加入Discord频道

捐赠

如果你想支持lazydocker的开发,可以考虑赞助我(github正在匹配所有捐赠,一对一持续12个月)

社交

如果你想了解我(Jesse)在开发方面的近况,可以在Twitter上关注我,或在Twitch上观看我的编程直播

常见问题

如何编辑我的配置?

打开lazydocker,点击左上角的"project"面板,然后按"o"(如果你的编辑器是vim,则按"e")。查看配置文档

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

未来我希望将这设为默认,但目前自动换行会导致一些CPU问题。如果你想启用自动换行,请使用gui.wrapMainPanel: true

如何选择文本?

由于我们支持鼠标事件,你需要在拖动鼠标时按住Option键,以表明你是在尝试选择文本而不是点击某个东西。或者,你可以通过gui.ignoreMouseEvents配置值禁用鼠标事件。

Mac用户:其他选项请参见Issue #190

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

默认情况下,我们只显示最近一小时的日志,以避免给机器造成过大压力。这可能是你首次启动lazydocker时看不到日志的原因。可以在配置的commandTemplates中修改这一设置。

如果你在Docker容器中运行lazydocker,这是一个已知的bug,你无法看到日志或CPU使用情况。

替代方案

  • docui - Skanehira抢先一步制作了docker终端UI,所以一定要看看那个仓库!我认为这两个仓库可以和谐共存:lazydocker更侧重于管理现有容器/服务,而docui更侧重于创建和配置它们。
  • Portainer - Portainer试图解决同样的问题,但它通过浏览器而不是终端访问。它还支持docker swarm。
  • 查看Awesome Docker列表以了解与Docker一起使用的类似工具。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号