A simple terminal UI for both docker and docker-compose, written in Go with the gocui library.
Minor rant incoming: Something's not working? Maybe a service is down.
docker-compose ps. Yep, it's that microservice that's still buggy. No issue, I'll just restart it:
docker-compose restart. Okay now let's try again. Oh wait the issue is still there. Hmm.
docker-compose ps. Right so the service must have just stopped immediately after starting. I probably would have known that if I was reading the log stream, but there is a lot of clutter in there from other services. I could get the logs for just that one service with
docker compose logs --follow myservice but that dies everytime the service dies so I'd need to run that command every time I restart the service. I could alternatively run
docker-compose up myservice and in that terminal window if the service is down I could just
up it again, but now I've got one service hogging a terminal window even after I no longer care about its logs. I guess when I want to reclaim the terminal realestate I can do
ctrl+P,Q, but... wait, that's not working for some reason. Should I use ctrl+C instead? I can't remember if that closes the foreground process or kills the actual service.
What a headache!
Memorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker's goal is to make that dream a reality.
brew tap jesseduffield/lazydocker brew install lazydocker
Binary Release (Linux/OSX)
You can manually download a binary release from the release page.
Automated install/update, don't forget to always verify what you're piping into bash:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
required go version: 1.12
go get github.com/jesseduffield/lazydocker
Arch Linux AUR
You can install lazydocker using your AUR package manager of choice or by running:
git clone https://aur.archlinux.org/lazydocker.git ~/lazydocker cd ~/lazydocker makepkg --install
A development version of the AUR package is also available
lazydocker in your terminal. I personally use this a lot so I've made an alias for it like so:
echo "alias lzd='lazydocker'" >> ~/.zshrc
(you can substitute .zshrc for whatever rc file you're using)
- Basic video tutorial.
- List of keybindings
everything is one keypress away (or one click away! Mouse support FTW):
- viewing the state of your docker or docker-compose container environment at a glance
- viewing logs for a container/service
- viewing ascii graphs of your containers' metrics so that you can not only feel but also look like a developer
- customising those graphs to measure nearly any metric you want
- attaching to a container/service
- restarting/removing/rebuilding containers/services
- viewing the ancestor layers of a given image
- pruning containers, images, or volumes that are hogging up disk space
Subscribe to Golang Example
Get the latest posts delivered right to your inbox