Aller au contenu
Conteneurs & Orchestration medium

LazyDocker : gérez vos conteneurs Docker depuis le terminal

12 min de lecture

LazyDocker

LazyDocker est une interface terminal (TUI) qui permet de gérer vos conteneurs, images, volumes et réseaux Docker sans mémoriser les commandes CLI. Un simple lazydocker affiche tout l'état de votre environnement Docker et permet d'agir en quelques touches. Projet open source de Jesse Duffield (créateur de Lazygit), il supporte Docker et Docker Compose.

  • Installer LazyDocker (v0.25.2) sur Linux, macOS ou Windows
  • Naviguer dans l'interface avec les raccourcis clavier
  • Gérer conteneurs, images, volumes et réseaux
  • Personnaliser la configuration et ajouter vos propres commandes

LazyDocker est un binaire Go statique sans dépendance : l'installation se résume à placer un fichier dans votre PATH. Une seule exigence côté système, un accès au socket Docker, puisque l'outil parle à l'API du démon local et n'embarque aucun moteur. Choisissez l'onglet de votre plateforme ; les deux méthodes proposées pour Linux et macOS diffèrent sur un point qui compte, le gestionnaire de versions vous permet de revenir en arrière, le téléchargement direct impose de refaire la manipulation à chaque bump.

Avec asdf-vm :

Fenêtre de terminal
asdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.git
asdf install lazydocker 0.25.2
asdf set --home lazydocker 0.25.2

Ou téléchargement direct, avec vérification de l'empreinte publiée par le projet. Le fichier checksums.txt accompagne chaque release et couvre tous les binaires :

Fenêtre de terminal
VERSION="0.25.2"
BASE="https://github.com/jesseduffield/lazydocker/releases/download/v${VERSION}"
curl -sSLO "${BASE}/lazydocker_${VERSION}_Linux_x86_64.tar.gz"
curl -sSLO "${BASE}/checksums.txt"
sha256sum --check --ignore-missing checksums.txt
tar xzf "lazydocker_${VERSION}_Linux_x86_64.tar.gz" lazydocker
sudo install -m 0755 lazydocker /usr/local/bin/lazydocker
Sortie attendue
lazydocker_0.25.2_Linux_x86_64.tar.gz: OK

Si sha256sum affiche FAILED, l'archive est corrompue ou altérée : arrêtez là et ne l'extrayez pas.

Vérifiez l'installation :

Fenêtre de terminal
lazydocker --version
Sortie attendue
Version: 0.25.2
Date: 2026-04-19T02:51:21Z
BuildSource: binaryRelease
Commit: 7e7aadc2071d58031bf2daafca1fbd4093efc23f
OS: linux
Arch: amd64

La ligne BuildSource mérite un coup d'œil : binaryRelease confirme que vous utilisez un binaire officiel. Une valeur unknown signale un binaire compilé localement ou repackagé par une distribution, dont le comportement peut différer.

Lancez simplement :

Fenêtre de terminal
lazydocker

L'interface affiche plusieurs panneaux :

PanneauContenuRaccourci
ProjectServices Docker Compose1
ContainersConteneurs en cours2
ImagesImages locales3
VolumesVolumes Docker4
NetworksRéseaux Docker5

Sept touches suffisent pour tout faire, et deux méritent d'être mémorisées en priorité. La touche x ouvre le menu d'actions du panneau où vous êtes : c'est le point d'entrée universel quand vous ne savez plus quelle touche utiliser. Les crochets [ et ] changent d'onglet dans le panneau de droite, ce qui n'est indiqué nulle part à l'écran et reste le raccourci le plus oublié.

ToucheAction
Tab / Changer de panneau
/ j kNaviguer dans la liste
EnterVoir les détails
xMenu d'actions
[ ]Changer d'onglet (Logs, Stats, Config)
/Filtrer
qQuitter

Interface de LazyDocker

Dans le panneau de droite, plusieurs onglets affichent des informations différentes :

OngletDescription
LogsLogs en temps réel du conteneur sélectionné
StatsCPU, mémoire, I/O réseau et disque
ConfigConfiguration complète au format YAML
TopProcessus en cours dans le conteneur

Sélectionnez un conteneur et appuyez sur x pour voir le menu :

ActionToucheCommande équivalente
Arrêtersdocker stop
Redémarrerrdocker restart
Supprimerddocker rm
Attacheradocker attach
ShellEdocker exec -it ... /bin/sh
Logsldocker logs -f

Le panneau Images propose moins d'actions, mais la première sert au quotidien pour récupérer de l'espace disque. La colonne « Commande équivalente » vous permet de reproduire le geste dans un script. Notez la casse : P en majuscule pour pousser une image, alors que la plupart des autres raccourcis sont en minuscules ; c'est un garde-fou délibéré sur une action qui écrit dans un registre distant.

ActionToucheCommande équivalente
Supprimerddocker rmi
Créer conteneurcdocker run
PusherPdocker push

Depuis la version 0.21, LazyDocker affiche un panneau Networks dédié.

Appuyez sur 5 pour accéder aux réseaux, puis :

ActionToucheDescription
InspecterEnterVoir la configuration réseau
SupprimerdSupprimer le réseau

Le panneau affiche les réseaux bridge, host, none et personnalisés.

LazyDocker stocke sa configuration dans :

OSChemin
Linux~/.config/lazydocker/config.yml
macOS~/Library/Application Support/jesseduffield/lazydocker/config.yml
WindowsC:\Users\<User>\AppData\Roaming\lazydocker\config.yml

Vous n'avez pas besoin de recopier tout ce bloc : le fichier de configuration est partiel, seules les clés que vous écrivez surchargent les valeurs par défaut. Pour partir de l'existant plutôt que de deviner les noms de clés, la commande lazydocker -c affiche la configuration par défaut complète, valeurs comprises. Les trois options qui changent le plus le confort d'usage sont logs.since, qui borne la quantité de logs chargés au démarrage, logs.tail, qui limite le nombre de lignes affichées, et language, dont les codes acceptés sont auto, en, fr, de, es, pt, pl, nl, tr et zh.

config.yml
gui:
# Langue : auto, en, fr, de, es, pt, pl, nl, tr, zh
language: 'fr'
# Mode d'affichage au démarrage : normal, half, fullscreen
screenMode: "normal"
# Style de statut : long, short, icon
containerStatusHealthStyle: "short"
# Style des bordures : single, double, rounded, hidden
border: "rounded"
theme:
activeBorderColor:
- green
- bold
selectedLineBgColor:
- blue
logs:
# Afficher les timestamps
timestamps: true
# Logs depuis X minutes ('' = tous)
since: '60m'
# Nombre de lignes à afficher
tail: '200'
commandTemplates:
# Utiliser docker compose (sans tiret) depuis v0.24
dockerCompose: docker compose

Ajoutez vos propres commandes dans config.yml :

config.yml
customCommands:
containers:
- name: bash
attach: true
command: 'docker exec -it {{ .Container.ID }} bash'
serviceNames: []
- name: "Voir les variables d'environnement"
attach: false
command: 'docker exec {{ .Container.ID }} env'
serviceNames: []
images:
- name: "Historique des layers"
command: 'docker history {{ .Image.ID }}'
attach: false

Ces variables sont des templates Go interpolés au moment où vous déclenchez la commande, avec l'élément actuellement sélectionné dans le panneau. Elles ne sont donc pas interchangeables : {{ .Container.ID }} n'a de sens que dans un bloc containers, et {{ .Service.Name }} que sous services. Une variable utilisée dans le mauvais bloc produit une chaîne vide, et la commande échoue avec un message qui ne pointe pas vers la vraie cause.

VariableDescription
{{ .Container.ID }}ID du conteneur sélectionné
{{ .Container.Name }}Nom du conteneur
{{ .Image.ID }}ID de l'image
{{ .Service.Name }}Nom du service Compose
{{ .DockerCompose }}Commande docker compose

Si vous êtes dans un dossier avec un docker-compose.yml, LazyDocker détecte automatiquement les services :

Fenêtre de terminal
cd mon-projet/
lazydocker

Le panneau Project affiche alors tous les services définis.

Vous pouvez aussi spécifier un fichier Compose, ou nommer explicitement le projet avec -p lorsque le nom déduit du dossier ne correspond pas à celui utilisé par vos conteneurs :

Fenêtre de terminal
lazydocker -f docker-compose.prod.yml
lazydocker -p mon-projet

La grande majorité des problèmes rencontrés avec LazyDocker viennent du démon Docker, pas de l'outil : il ne fait que lire l'API locale et affiche ce qu'elle lui renvoie. Le réflexe de diagnostic est donc de vérifier d'abord que docker ps fonctionne dans le même terminal, avec le même utilisateur. Si cette commande échoue, aucun réglage de LazyDocker n'y changera quoi que ce soit.

ProblèmeCauseSolution
LazyDocker ne détecte pas ComposeAncien formatRenommez docker-compose.yaml en docker-compose.yml
Pas de logs affichésConteneur sans stdoutVérifiez que l'app écrit sur stdout
Erreur "Cannot connect to Docker"Socket inaccessibleVérifiez DOCKER_HOST ou ajoutez votre user au groupe docker
Stats à 0%Conteneur arrêtéDémarrez le conteneur
  • LazyDocker est une TUI pour gérer Docker sans mémoriser les commandes
  • Navigation par numéros (1-5) pour sauter entre panneaux
  • Onglets Logs, Stats, Config, Top pour chaque conteneur
  • Panneau Networks pour gérer les réseaux Docker (v0.21+)
  • Commandes personnalisées via customCommands dans config.yml
  • Supporte docker compose (sans tiret) par défaut depuis v0.24
  • Vérifiez toujours l'archive téléchargée avec le checksums.txt de la release avant d'installer le binaire

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn