How to Install Lazydocker on Ubuntu: A Simple Terminal UI for Docker

Lazydocker is a simple terminal UI for Docker and docker-compose, built by the creator of Lazygit. Rather than juggling docker ps, docker logs, docker stats and docker system prune, you get one keyboard-driven dashboard: containers, images, volumes and networks in a single view, streaming logs, live CPU and memory graphs, and one-key actions to restart, stop, remove or shell into any container.

Lazydocker is not part of the Ubuntu archive, so you would otherwise fetch a release binary or pipe an install script into your shell β€” and then own the job of keeping it updated.

The unofficial deb.griffo.io repository provides a current Lazydocker package you install and upgrade with apt. This guide covers the full setup on Ubuntu, including the Docker daemon it front-ends.

Install the Latest Lazydocker on Ubuntu: The Short Version

If you only came for the commands, this adds the repository and installs the latest Lazydocker .deb package on Ubuntu:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
sudo apt install lazydocker

The rest of this guide explains what each command does, how to verify the install, how to keep Lazydocker up to date, and what to check when something goes wrong.

What Makes Lazydocker Special?

  • πŸ“Š One dashboard for everything β€” containers, Compose services, images, volumes and networks together.
  • πŸ“œ Live log streaming β€” follow any container or service without typing docker logs.
  • πŸ“ˆ Resource graphs β€” real-time CPU and memory usage drawn in the terminal.
  • ⚑ One-key actions β€” restart, stop, remove, pause or rebuild with a single keystroke.
  • 🐚 Attach and exec β€” open a shell inside a running container straight from the UI.
  • 🧹 Easy pruning β€” reclaim disk from dangling images, stopped containers and unused volumes.
  • 🧩 docker-compose aware β€” control a whole Compose project from its directory.
  • βš™οΈ Customisable β€” add custom commands and tune behaviour via a YAML config.

Why Use the deb.griffo.io Repository?

  • Install and update through APT with no manual downloads.
  • Automatic dependency management through Debian-style packaging.
  • Always tracks upstream so Lazydocker stays current.
  • No source builds and no Go toolchain to maintain.
  • Works across supported Ubuntu releases β€” Jammy, Noble and newer.

Prerequisites

You will need:

  • An Ubuntu system (Jammy 22.04 LTS, Noble 24.04 LTS, or newer)
  • sudo privileges
  • curl installed (sudo apt install curl if it is missing)
  • Docker installed and running β€” Lazydocker is a front-end for the Docker daemon

If you do not have Docker yet, install Docker Engine from Docker’s official APT repository, or use the convenience script for a quick start:

curl -fsSL https://get.docker.com | sudo sh

Step 1: Add the deb.griffo.io Repository

Install the repository key and add its source list:

# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings

# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg

# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null

# Update the package list
sudo apt update

What each command does:

  1. Keyrings directory β€” /etc/apt/keyrings holds third-party keys on modern Ubuntu.
  2. GPG key β€” downloaded and de-armoured so APT can verify packages.
  3. Source list β€” lsb_release -sc supplies your Ubuntu codename (for example noble).
  4. Update β€” refreshes APT’s index.

Step 2: Update the Package List

If you did not run the last command above:

sudo apt update

Step 3: Install Lazydocker

sudo apt install lazydocker

APT installs Lazydocker and any dependencies.

Step 4: Verify the Installation

lazydocker --version

You should see output like:

Version: 0.24.1
Date: 2025-04-12T10:14:33Z
BuildSource: binaryRelease
Commit: a1b2c3d
OS: linux
Arch: amd64

Start the interface with:

lazydocker

Press q to exit.

Getting Started with Lazydocker

Grant Your User Docker Access

On a fresh Ubuntu install the Docker socket is root-owned, so Lazydocker either needs sudo or your user needs to be in the docker group. The group approach is tidier:

sudo usermod -aG docker "$USER"

Apply the change with a fresh login or newgrp docker, then confirm access:

docker ps

Once that succeeds, run lazydocker without sudo.

The layout is a column of panels on the left with a detail view on the right:

  • Project β€” docker-compose status when started in a project directory
  • Containers β€” all containers, running or stopped
  • Images β€” local images
  • Volumes β€” Docker volumes
  • Networks β€” Docker networks

Switch panels with the arrow keys or [ / ], move inside a panel with j / k, and press Enter or Tab to jump into the detail view where logs, stats and configuration live.

Key Actions on Containers

Select a container, then:

  • s β€” stop, r β€” restart, p β€” pause
  • d β€” remove (confirmation prompted)
  • a β€” attach, E β€” exec into a shell
  • b β€” bulk command menu (prune and more)
  • Enter β€” view logs, stats, config and environment

Press ? at any time for the full, context-aware keybinding list.

Driving a docker-compose Stack

Launch Lazydocker from a directory containing a docker-compose.yml and it becomes a Compose control panel:

cd ~/apps/web-stack
lazydocker

The Project panel reflects your services; from there you can view combined logs, restart services individually and rebuild β€” all in the UI.

Configuration and Custom Commands

Lazydocker reads ~/.config/lazydocker/config.yml. Create it to adjust behaviour:

mkdir -p ~/.config/lazydocker
# ~/.config/lazydocker/config.yml
gui:
  returnImmediately: false
  showBottomLine: true
logs:
  timestamps: true
  since: '30m'
commandTemplates:
  dockerCompose: docker compose

Setting commandTemplates.dockerCompose to docker compose (a space, not a hyphen) points Lazydocker at the Compose V2 plugin that ships with current Docker on Ubuntu, rather than the deprecated standalone docker-compose.

Keeping Lazydocker Updated

Lazydocker updates arrive with your usual Ubuntu upgrades:

sudo apt update && sudo apt upgrade

Other Tools from deb.griffo.io

The repository packages many more developer tools for Ubuntu:

  • Zellij β€” a terminal workspace and multiplexer to run Lazydocker in a pane.
  • Helix β€” a post-modern modal text editor for your Compose files.
  • Yazi β€” a blazing-fast terminal file manager written in Rust.
  • Zig β€” a general-purpose systems programming language.

Troubleshooting

GPG or Key Errors

If APT reports a signature problem, re-install the key:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Package Not Found

If APT cannot find lazydocker:

  1. Run sudo apt update after adding the repository.
  2. Confirm your release is supported (Jammy, Noble or newer).
  3. Check the source list:
cat /etc/apt/sources.list.d/deb.griffo.io.list

β€œCannot connect to the Docker daemon”

Lazydocker needs a running Docker daemon and permission to reach its socket. On Ubuntu, verify both:

# Is the daemon active?
sudo systemctl status docker

# Can your user reach it?
docker ps

A permission error from docker ps means your user is not in the docker group yet, or you have not started a new login session since adding it β€” see β€œGrant Your User Docker Access” above. If Docker was installed as a snap, note that its socket permissions differ; installing Docker Engine from Docker’s APT repository avoids that surprise.

Uninstalling

# Remove the Lazydocker package
sudo apt remove lazydocker

# Optionally remove the repository
sudo rm -f /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm -f /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Conclusion

Lazydocker collapses a pile of docker commands into one fast, keyboard-driven dashboard, and deb.griffo.io keeps it current on Ubuntu with a single apt install. Add yourself to the docker group, launch it inside a Compose project, and you have live logs, resource graphs and one-key container control without ever leaving the terminal.

From then on, new releases reach you through the same apt upgrade you run for everything else on the system.

Frequently Asked Questions

How do I install the latest Lazydocker on Ubuntu?

Add the deb.griffo.io APT repository and its signing key, then run sudo apt install lazydocker. The repository tracks upstream Lazydocker releases, so you get the latest packaged version rather than a build frozen when your distribution was released.

Is there a .deb package for Lazydocker?

Yes. deb.griffo.io publishes Lazydocker as a signed .deb for Ubuntu. You could download that .deb and install it by hand, but adding the repository is the better option: APT then resolves dependencies and picks up new versions on its own.

How do I update Lazydocker to the latest version?

Run sudo apt update && sudo apt upgrade. Once Lazydocker is installed from APT there is no separate updater to remember, since new releases arrive with the rest of your system updates.

How do I install Lazydocker on Debian?

Exactly the same way; lsb_release -sc simply resolves to a different codename. There is a companion guide with the Debian specifics: How to install Lazydocker on Debian.

Which Ubuntu releases are supported?

Jammy 22.04 LTS, Noble 24.04 LTS and newer. Because the repository line is built from lsb_release -sc, the matching suite is selected for you.

Resources


Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Lazydocker project.