Skip to main content

Reference · Reference

Lazydocker Keybindings & Commands

Search lazydocker keybindings by panel with one-click copy. A complete cheat sheet covering containers, services (Compose), images, volumes, networks, CLI flags, config.yml settings, and custom commands.

Last updated:

Supported version: v0.25.x (latest v0.25.2 / April 2026) | Updated July 2026

How to Use

Expand how to use
  1. 1

    Filter by category or search

    Use the panel category buttons (Containers / Services / Images, etc.) or the search box to find the keybinding you need.

  2. 2

    Check the keybinding

    Review the key and its description. Lazydocker assigns different actions to the same key depending on the focused panel, so pay attention to the category.

  3. 3

    Copy commands to use them

    Copy CLI flags, install commands, and config.yml examples to your clipboard and paste them straight into your terminal or config file.

Supported Version

This cheat sheet covers lazydocker v0.25.x (latest v0.25.2, released April 19, 2026), including panel keybindings, CLI flags, config.yml settings, and custom commands.

v0.25.2 (April 2026)

  • Added support for the -p / --project flag to specify a docker compose project name
  • Hides the project and services panels when the current directory is not part of a docker-compose project
  • Fixed the forced project view behavior

v0.25.0 (March 2026)

  • Improved docker-compose projects support with better project view handling
View version details

Global & Navigation

+
Switch to the next screen mode (normal / half / fullscreen). Press _ for the previous mode.
_
Switch to the previous screen mode.
1
Focus the projects panel.
2
Focus the services panel.
3
Focus the containers panel.
4
Focus the images panel.
5
Focus the volumes panel.
6
Focus the networks panel.
[/]
Switch to the previous ([) or next (]) tab within the focused panel.
/
Filter the current list.
enter
Focus the main panel from a side panel.
esc
Return from the main panel back to the side panel.

Project

e
Edit the lazydocker config in your external editor.
o
Open the lazydocker config with your OS default handler.
m
View logs.

Containers

d
Remove the selected container.
e
Hide or show stopped containers.
p
Pause the selected container.
s
Stop the selected container.
r
Restart the selected container.
a
Attach to the selected container.
m
View logs of the selected container.
E
Exec a shell inside the selected container.
c
Run a predefined custom command.
b
View bulk commands.
w
Open in browser (assumes the first port is http).

Services (Compose)

u
Up the selected service.
d
Remove containers for the selected service.
s
Stop the selected service.
p
Pause the selected service.
r
Restart the selected service.
S
Start the selected service.
a
Attach to the selected service.
m
View logs of the selected service.
U
Up the whole docker-compose project.
D
Down the whole docker-compose project.
R
View restart options.
c
Run a predefined custom command.
b
View bulk commands.
E
Exec a shell inside the service container.
w
Open in browser (assumes the first port is http).

Images

c
Run a predefined custom command.
d
Remove the selected image.
b
View bulk commands.

Volumes

c
Run a predefined custom command.
d
Remove the selected volume.
b
View bulk commands.

Networks

c
Run a predefined custom command.
d
Remove the selected network.
b
View bulk commands.

CLI & Install

-c, --config

Print the current default config as YAML to stdout and exit. A handy starting point for creating config.yml.

Notes

  • Boolean flag
  • Redirect the output to a file to scaffold config.yml

Examples

lazydocker --config
Print the default config as YAML

-d, --debug

Enable debug mode (boolean).

Examples

lazydocker --debug
Launch in debug mode

-f, --file

Specify alternate docker-compose files. Can be passed multiple times (StringSlice).

Notes

  • Pass -f multiple times to combine several Compose files

Examples

lazydocker -f docker-compose.yml -f docker-compose.override.yml
Launch with multiple Compose files

-p, --project

Specify a docker compose project name.

Examples

lazydocker -p myproject
Launch with a specific project name

-h, --help

Show help. This is a built-in flag from the flaggy library (ShowHelpWithHFlag=true), not defined by lazydocker itself.

Examples

lazydocker --help
Show usage and the list of flags

--version

Show version information (version, build date, build source, commit, OS, arch). A built-in flaggy flag; there is no short -v alias.

Examples

lazydocker --version
Show version information

brew install jesseduffield/lazydocker/lazydocker

Install via the Homebrew tap (recommended; updated frequently).

Notes

  • Updated faster than Homebrew core's 'brew install lazydocker'

Examples

brew install jesseduffield/lazydocker/lazydocker
Install with the Homebrew tap

scoop install lazydocker

Install on Windows via Scoop.

Examples

scoop install lazydocker
Install on Windows with Scoop

choco install lazydocker

Install on Windows via Chocolatey.

Examples

choco install lazydocker
Install on Windows with Chocolatey

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

Automatically install or update the binary on Linux/macOS/Windows (into $HOME/.local/bin).

Examples

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
Install the binary via the script

go install github.com/jesseduffield/lazydocker@latest

Install from source using Go 1.19 or newer.

Examples

go install github.com/jesseduffield/lazydocker@latest
Install from source with Go

docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath:/.config/jesseduffield/lazydocker lazyteam/lazydocker

Run lazydocker inside a container by mounting the Docker socket and a config path.

Notes

  • Replace /yourpath with a host path where the config is stored

Examples

docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath:/.config/jesseduffield/lazydocker lazyteam/lazydocker
Run lazydocker in a container

Config & Customization

config.yml

Lazydocker's config file. The location depends on your OS.

Notes

  • macOS: ~/Library/Application Support/jesseduffield/lazydocker/config.yml
  • Linux: ~/.config/lazydocker/config.yml
  • Windows: C:/Users/<User>/AppData/Roaming/lazydocker/config.yml

Examples

~/.config/lazydocker/config.yml
Linux config file location

gui.scrollHeight

Number of lines panels scroll by. Default: 2.

Examples

gui:
  scrollHeight: 2
Scroll by 2 lines

gui.language

UI language: one of 'auto' | 'en' | 'pl' | 'nl' | 'de' | 'tr'.

Notes

  • auto follows your OS language setting
  • Japanese (ja) is not supported

Examples

gui:
  language: "auto"
Follow the OS language setting

gui.border

Panel border style: one of 'rounded' | 'single' | 'double' | 'hidden'.

Examples

gui:
  border: "rounded"
Use rounded borders

gui.theme

Theme colors. Each is a color attribute array (one color plus modifiers such as bold): activeBorderColor for the focused panel border, inactiveBorderColor for inactive panel borders, selectedLineBgColor for the selected line background, and optionsTextColor for the bottom-line keybinding text.

Notes

  • activeBorderColor / inactiveBorderColor
  • selectedLineBgColor / optionsTextColor

Examples

gui:
  theme:
    activeBorderColor:
      - green
      - bold
    inactiveBorderColor:
      - white
    selectedLineBgColor:
      - blue
    optionsTextColor:
      - blue
Set all four theme colors at once

gui.returnImmediately

Boolean flag (no description given in the docs). Default: false.

Examples

gui:
  returnImmediately: false
Default value example

gui.wrapMainPanel

Boolean flag (no description given in the docs). Default: true.

Examples

gui:
  wrapMainPanel: true
Wrap text in the main panel

gui.sidePanelWidth

Side panel width as a ratio of the screen's width.

Examples

gui:
  sidePanelWidth: 0.333
Make the side panel about one third of the width

gui.showBottomLine

Determines whether to show the bottom line (the one with keybinding info and the app's status).

Examples

gui:
  showBottomLine: true
Show the bottom line

gui.expandFocusedSidePanel

When true, increases the vertical space used by the focused side panel, creating an accordion effect.

Examples

gui:
  expandFocusedSidePanel: false
Disable the accordion effect

gui.screenMode

Screen mode used on startup: one of 'normal' | 'half' | 'fullscreen'.

Examples

gui:
  screenMode: "normal"
Start in normal screen mode

gui.containerStatusHealthStyle

Style of the container status and health display in the containers panel: 'long' (full words, default), 'short' (one or two characters), or 'icon' (unicode emoji).

Examples

gui:
  containerStatusHealthStyle: "long"
Show the status as full words

logs.timestamps

Whether log timestamps are shown. Default: false.

Examples

logs:
  timestamps: false
Hide log timestamps

logs.since

Time range filter for logs; set to an empty string to show all logs.

Examples

logs:
  since: '60m'
Show logs from the last 60 minutes

logs.tail

Line limit for log viewing; for example set it to 200 to show the last 200 lines of logs.

Examples

logs:
  tail: '200'
Show the last 200 lines of logs

oS.openCommand

Command used to open a file with the OS default handler. The filename placeholder is replaced with the target file path.

Notes

  • The yaml tag is uppercase oS
  • The filename placeholder expands to the file path

Examples

oS:
  openCommand: open {{filename}}
Open files with the macOS open command

oS.openLinkCommand

Command used to open a link with the OS default handler. The link placeholder is replaced with the target URL.

Notes

  • The yaml tag is uppercase oS
  • The link placeholder expands to the URL

Examples

oS:
  openLinkCommand: open {{link}}
Open links with the macOS open command

stats.graphs

List of graphs shown in the stats panel for CPU/Memory monitoring. Each entry defines a caption, a statPath (data source), and a display color.

Examples

stats:
  graphs:
    - caption: CPU (%)
      statPath: DerivedStats.CPUPercentage
      color: blue
    - caption: Memory (%)
      statPath: DerivedStats.MemoryPercentage
      color: green
Configure CPU and memory graphs

customCommands

User-defined custom Docker CLI commands, scoped to a category (for example containers). Each entry has name, attach (boolean), command (a Go template string), and serviceNames fields.

Notes

  • name: the display name shown in the UI
  • attach: whether to attach interactively (boolean)
  • command: the command to run (Go template)
  • serviceNames: restrict to specific services (empty list means no restriction)

Examples

customCommands:
  containers:
    - name: bash
      attach: true
      command: 'docker exec -it {{ .Container.ID }} bash'
      serviceNames: []
A custom command that opens bash in a container

replacements

Map of image name prefixes to replacement display strings (imageNamePrefixes), used to shorten long registry prefixes such as ECR URLs in the UI.

Examples

replacements:
  imageNamePrefixes:
    '123456789012.dkr.ecr.us-east-1.amazonaws.com': '<prod>'
    '923456789999.dkr.ecr.us-east-1.amazonaws.com': '<dev>'
Replace ECR prefixes with short display names

Version Info

Compiled from official lazydocker GitHub releases.

v0.25.2 (April 2026)

View official release

  • Added support for the -p / --project flag to specify a docker compose project name
  • Hides the project and services panels when the current directory is not part of a docker-compose project
  • Fixed the forced project view behavior
v0.25.0 (March 2026)

View official release

  • Improved docker-compose projects support with better project view handling
v0.24.4 (January 2026)

View official release

  • Fixed a version lock issue
v0.24.3 (December 2025)

View official release

  • Fixed a panic in the container summary by validating the Names slice length and falling back to the container ID when it is empty
  • Upgraded the build's Go version from 1.21 to 1.23
v0.24.2 (November 2025)

View official release

  • Added lazygit-style panel number navigation: jump to a panel by number, shown in the panel titles
  • Updated the Docker client to support API version 1.52

About Lazydocker Keybindings & Commands

Lazydocker is a terminal UI (TUI) client for managing Docker and Docker Compose, written in Go by jesseduffield — the same author as lazygit. It lets you inspect containers, services, images, volumes, and networks, view logs, attach to containers, exec a shell, and bring Compose projects up or down, all with keyboard shortcuts instead of typing docker commands. With more than 40,000 GitHub stars it has become a popular tool, but because every panel (Project / Containers / Services / Images / Volumes / Networks) has its own keybindings, it takes time to learn what each key does where. This cheat sheet organizes every keybinding of lazydocker v0.25.x by panel, fully searchable with one-click copy. It covers the basics (d to remove, s to stop, r to restart, m to view logs), operations like E to exec a shell, u/U to bring a service or project up, b for bulk commands, and c for custom commands, plus CLI flags, install commands, and config.yml customization (themes, log settings, stats graphs, and custom commands).

Key Features

  • Keybindings organized by panel (Global / Project / Containers / Services / Images / Volumes / Networks)
  • Full-text search across keys and descriptions, plus category filters
  • CLI flags (-c/--config, -f/--file, -p/--project, etc.) and install commands (Homebrew / Scoop / Chocolatey / Go / Docker)
  • config.yml customization examples (themes, logs, stats graphs, custom commands, image name replacements)
  • One-click copy for every command and config snippet
  • Covers lazydocker v0.25 with a version history section

Use Cases

  • You just installed lazydocker and want to learn the basics
  • You want to see how keys differ between services (Compose) and containers
  • You want to check what each per-panel key means
  • You want to copy custom commands or stats graph settings for config.yml
  • You manage your lazydocker config in dotfiles and need a reference

Frequently Asked Questions

What is lazydocker?

Lazydocker is a terminal-based client (TUI) for managing Docker and Docker Compose, written in Go by jesseduffield — the same author as lazygit. It lets you inspect containers and services, view logs, and start or stop them using only keyboard shortcuts. It has earned more than 40,000 stars on GitHub.

How do I install lazydocker?

On macOS and Linux run 'brew install jesseduffield/lazydocker/lazydocker' (the Homebrew tap, updated frequently and recommended). On Windows use 'scoop install lazydocker' or 'choco install lazydocker'. You can also install the binary directly with the install script (install_update_linux.sh) on Linux/macOS/Windows, and with Go installed you can run 'go install github.com/jesseduffield/lazydocker@latest'.

Where is the config.yml located?

The location depends on your OS. On macOS it is ~/Library/Application Support/jesseduffield/lazydocker/config.yml, on Linux ~/.config/lazydocker/config.yml, and on Windows C:/Users/[username]/AppData/Roaming/lazydocker/config.yml. The Config & Customization category lists each path with configuration examples.

How are lazygit and lazydocker related?

Both are TUI tools built by the same author, jesseduffield. Lazygit focuses on Git while lazydocker focuses on Docker and Docker Compose. They share the same design — per-panel keybindings and config.yml customization — so if you know one, the other feels familiar.

How do I target a specific docker compose project?

Use the -f / --file flag to specify alternate docker-compose files (it can be passed multiple times), and the -p / --project flag to set the docker compose project name. The CLI & Install category includes copyable launch examples.

How do I write customCommands?

In the customCommands section of config.yml you define your own Docker CLI commands scoped to a category (for example containers). Each entry has name (display name), attach (whether to attach interactively), command (a Go template string), and serviceNames (restrict to specific services). The Config & Customization category includes a copyable example.

Is there a complete lazydocker keybindings cheat sheet?

Yes — this page is a complete lazydocker cheat sheet that lists every keybinding by panel (Global, Project, Containers, Services, Images, Volumes, Networks), along with CLI flags, install commands, and config.yml examples. Use the category filter or full-text search to find any key instantly.

Can I switch panels with number keys?

Yes. Press 1 for the projects panel, 2 for services, 3 for containers, 4 for images, 5 for volumes, and 6 for networks (lazygit-style panel number navigation added in v0.24.2). The numbers are also shown in the panel titles.