Lazydocker: el docker para perezosos que necesitas en tu terminal

Vistas: 21926
Lazydocker: el docker para perezosos que necesitas en tu terminal

Gestionar contenedores Docker desde la línea de comandos es una de esas cosas que parecen sencillas al principio, hasta que te das cuenta de que necesitas tener cinco terminales abiertas para hacer lo mismo que podrías hacer en una sola pantalla. Una para docker ps, otra para docker logs -f, otra para docker stats, otra para docker-compose up, y otra para docker exec cuando quieres entrar en un contenedor. Y no te cuento cuando quieres borrar volúmenes huérfanos o limpiar imágenes que ya no usas. Siempre me ha parecido que Docker es una herramienta fantástica, pero su gestión diaria es tediosa. Te sabes los comandos de memoria, sí, pero eso no significa que sea cómodo. Encadenar docker ps | grep algo | awk para encontrar lo que buscas no es productividad, es supervivencia. Por eso, cuando descubrí Lazydocker, del mismo creador de Lazygit, me di cuenta de que alguien había pensado exactamente lo mismo que yo. Y como suele pasar con las herramientas de Jesse Duffield, la solución es tan elegante que te preguntas cómo has podido vivir sin ella. La primera vez que lo abrí y vi todos mis contenedores en una pantalla, con logs en tiempo real y estadísticas de CPU, pensé: “Esto es exactamente lo que necesitaba y no sabía que existía”. Si eres de los que pasas el día con Docker, esto te interesa. Si solo levantas un contenedor de vez en cuando, igual también, pero ya te avanzo que no es para todos los públicos.

¿Qué es Lazydocker?

Lazydocker es una interfaz TUI (Terminal User Interface) para gestionar Docker y Docker Compose. Está escrita en Go, pesa unos 12 MB, no tiene dependencias externas, y se ejecuta en cualquier sistema donde tengas Docker o Podman instalado.

El proyecto, como te decía, es de Jesse Duffield, el mismo desarrollador que creó Lazygit, esa maravilla que convirtió Git en algo visual sin salir del terminal. Con Lazydocker aplica la misma filosofía: todo a un keypress, cero configuración para empezar, y una interfaz que no te abruma.

A día de hoy, el proyecto va por la versión v0.25.2 (abril de 2026), acumula 52.1k estrellas en GitHub, más de 100 contribuidores, y ha tenido 47 releases desde su lanzamiento en 2019. Vamos, que no es un proyecto muerto ni mucho menos.

EspecificaciónValor
Versión actualv0.25.2 (abril 2026)
LicenciaMIT
LenguajeGo (98.4%)
Repositoriogithub.com/jesseduffield/lazydocker
Estrellas52.1k
Forks1.7k
Releases47 desde 2019
Tamaño binario~12 MB
Docker requerido>= 29.0.0 (API >= 1.24)
Composedocker compose (v2) por defecto

La licencia es MIT, así que puedes usarlo, modificarlo y redistribuirlo sin problemas. Y está traducido a varios idiomas, incluido el español.

¿Qué NO es Lazydocker?

Importante dejar esto claro. Lazydocker no es un editor de Dockerfiles, ni un gestor de stacks de Swarm, ni una interfaz web como Portainer. Tampoco es Portainer. Si buscas una GUI web para gestionar Docker en producción, con multi-host, RBAC y Kubernetes, Portainer es tu herramienta. Si buscas algo rápido, visual y que no te saque del terminal, Lazydocker es lo tuyo.

Tampoco es Podman Desktop, que es una aplicación de escritorio con interfaz gráfica nativa, más pesada, basada en Electron, pero que también gestiona Podman y Kubernetes. Son enfoques distintos.

Lazydocker es para los que vivimos en el terminal. Para los que preferimos vim a VSCode, tmux a pestañas del navegador, y lazygit a la interfaz de Git de cualquier IDE. Si ese eres tú, sigue leyendo.

Instalación

Una de las cosas que más me gustan de Lazydocker es que se instala en segundos. No necesitas Python, ni Node, ni Ruby, ni nada. Solo un binario estático que te bajas y ejecutas.

Linux y macOS con Homebrew

Si usas macOS o Linux y tienes Homebrew instalado, es tan sencillo como esto,

brew install jesseduffield/lazydocker/lazydocker

Este es el tap oficial, que siempre tiene la versión más actualizada. También puedes instalar desde el core de Homebrew,

brew install lazydocker

Pero ojo, porque la versión del core puede ir desactualizada respecto al tap.

Script automático para Linux

Si estás en Linux y no usas Homebrew, el método más rápido es el script oficial,

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

Por defecto instala el binario en $HOME/.local/bin. Si prefieres otra ubicación, por ejemplo /usr/local/bin,

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | DIR=/usr/local/bin bash

Windows con Scoop o Chocolatey

En Windows, tienes dos opciones. Con Scoop,

scoop install lazydocker

O con Chocolatey,

choco install lazydocker

Go install (multiplataforma)

Si tienes Go instalado (>= 1.19), puedes compilarlo tú mismo,

go install github.com/jesseduffield/lazydocker@latest

Arch Linux (AUR)

Para los que usáis Arch, como yo, está en el AUR,

yay -S lazydocker

Desde un contenedor Docker

Y sí, también puedes ejecutar Lazydocker dentro de un contenedor Docker. Que tiene su aquel, porque necesitas Docker para ejecutar una herramienta que gestiona Docker, pero oye, funciona.

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

Si vas a usarlo a menudo con Docker, te recomiendo crear un alias,

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

Yo personalmente prefiero el binario nativo. Es más rápido, más limpio, y no necesitas tener el contenedor corriendo solo para gestionar otros contenedores.

Autocompletado

Lazydocker incluye autocompletado para bash, zsh y fish. Para zsh, por ejemplo, añades esto a tu .zshrc,

source <(lazydocker completion zsh)

Y para bash,

source <(lazydocker completion bash)

Configuración

Lazydocker funciona sin configuración. Lo instalas, ejecutas lazydocker, y ya tienes la interfaz funcionando. Pero si quieres personalizarlo, el archivo de configuración está en,

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

También puedes abrir la configuración desde la propia interfaz. En el panel Project, tienes la tecla o para abrir el archivo y e para editarlo directamente con tu editor por defecto.

Aspecto visual

Una de las novedades que más me gustan de las versiones recientes es la personalización del estilo de los bordes. Puedes elegir entre cuatro estilos,

gui: border: "rounded" # 'rounded' | 'single' | 'double' | 'hidden'

El valor por defecto es rounded, que queda muy limpio. Si eres más clásico, single. Si quieres maximalismo, double. Y si prefieres que no haya bordes, hidden.

Tema de colores

La personalización de colores es sencilla pero potente,

gui: theme: activeBorderColor: - green - bold inactiveBorderColor: - white selectedLineBgColor: - blue optionsTextColor: - blue

Los colores disponibles son: default, black, red, green, yellow, blue, magenta, cyan, white, bold, reverse, underline. Suficiente para que cada uno tenga su interfaz reconocible.

Configuración de logs

Por defecto, Lazydocker muestra los logs de la última hora. Si quieres cambiar eso,

logs: timestamps: false since: '60m' # '' para mostrar todos los logs tail: '' # '200' para últimas 200 líneas

Comandos personalizados

Esta es una de las funcionalidades que más partido le saco. Puedes definir comandos personalizados que aparecen en el menú contextual al pulsar c sobre un contenedor,

customCommands: containers: - name: bash attach: true command: 'docker exec -it {{ .Container.ID }} bash' serviceNames: []

Así, cuando pulses c sobre un contenedor, te aparecerá la opción de abrir una shell bash directamente.

Esquema JSON para VSCode

Si usas VSCode con la extensión YAML de Red Hat, tienes IntelliSense automático para el archivo de configuración gracias al esquema JSON oficial,

https://json.schemastore.org/lazydocker.json

El día a día con Lazydocker

Vale, ya lo tienes instalado. Ahora, ¿cómo se usa? Te voy a contar cómo es mi flujo diario con Lazydocker.

Los seis paneles

Cuando arrancas Lazydocker, ves la pantalla dividida en dos zonas. A la izquierda, tienes seis paneles apilados. A la derecha, el panel de detalle que cambia según lo que tengas seleccionado.

Los seis paneles de la izquierda se navegan con las teclas del 1 al 6,

TeclaPanelDescripción
1ProjectsProyectos Docker Compose detectados
2ServicesServicios del proyecto activo
3ContainersTodos los contenedores
4ImagesImágenes disponibles
5VolumesVolúmenes
6NetworksRedes Docker

Esta navegación numérica se introdujo en la versión v0.24.2 y es una de esas mejoras que parecen pequeñas pero te cambian el día a día. Antes solo podías navegar con las flechas, que está bien, pero si tienes seis paneles, llegar al de redes requería bajar, bajar, bajar. Ahora, pulsas 6 y estás ahí.

El panel derecho: el detalle

Cuando seleccionas un panel de la izquierda, a la derecha ves la información detallada. Para el caso de los contenedores (tecla 3), tienes cuatro pestañas que cambias con [ y ],

  • Logs: el log en tiempo real del contenedor. Con la tecla m lo pones en pantalla completa y ves cada línea según se genera. Ideal cuando estás debugueando algo y necesitas seguir la salida en directo.
  • Stats: gráficos ASCII de CPU y memoria en tiempo real. Se actualizan solos, sin que tengas que hacer nada. Ver la gráfica de memoria dispararse cuando tu aplicación tiene una fuga es… aleccionador.
  • Config: la configuración del contenedor. Variables de entorno, puertos mapeados, volúmenes montados, comandos de entrada. Todo lo que necesitas saber sin tener que ejecutar docker inspect.
  • Top: los procesos que se están ejecutando dentro del contenedor. Equivalente a docker top, pero sin acordarte del comando.

Cada pestaña se actualiza en tiempo real. No tienes que recargar nada, ni hacer scroll, ni pulsar F5. Es como tener htop pero para Docker.

Las teclas de movimiento son las que esperarías si ya usas lazygit,

TeclaAcción
16Saltar a un panel
/ Moverse entre elementos del panel
EnterIr al panel de detalle (derecha)
EscVolver a los paneles de la izquierda
[ / ]Cambiar de pestaña en el panel derecho
/Filtrar la lista

Eso del filtro con / es otra de las novedades que mejoraron mucho la experiencia. Si tienes 30 contenedores, escribes /nginx y te muestra solo los que contengan esa palabra.

Operaciones con contenedores

Una vez que tienes seleccionado un contenedor, las operaciones más comunes son,

TeclaAcción
sParar contenedor
rReiniciar contenedor
dEliminar contenedor
pPausar contenedor
aAttach al contenedor
eMostrar/ocultar contenedores parados
mVer logs en pantalla completa
EExec shell, entrar en el contenedor
cComando personalizado
bOperaciones en bloque
wAbrir en navegador (si tiene puerto mapeado)

La tecla E es relativamente nueva y es una de las que más uso. Te abre una shell dentro del contenedor sin tener que acordarte de docker exec -it <id> bash. Lo hace por ti.

Operaciones en bloque con la tecla b

Esta es, para mi, la funcionalidad estrella. Pulsas b y te aparece un menú con operaciones masivas,

  • Prune contenedores parados
  • Prune imágenes no utilizadas
  • Prune volúmenes huérfanos
  • Limpiar todo de golpe

En lugar de tener que acordarte de docker container prune, docker image prune -a, docker volume prune, y ejecutarlos uno a uno, pulsas b, seleccionas lo que quieres limpiar, y listo.

Docker Compose desde la TUI

Otro de los puntos fuertes. Si trabajas con proyectos que usan Docker Compose, Lazydocker detecta automáticamente los proyectos multi-servicio y los muestra en el panel Projects (tecla 1).

Desde ahí puedes,

TeclaAcción
uLevantar un servicio (docker compose up -d)
ULevantar todo el proyecto
DParar todo el proyecto (docker compose down)
dEliminar contenedores del servicio
SStart de un servicio
ROpciones de reinicio
EExec shell en el servicio

Desde la versión v0.24.0, Lazydocker usa docker compose (v2) por defecto, en lugar del antiguo docker-compose (v1). Si por algún motivo necesitas el antiguo, puedes cambiarlo en la configuración,

commandTemplates: dockerCompose: docker-compose

Pero vamos, yo te recomiendo usar la v2. Es más rápida, más estable, y es el futuro.

Funcionalidades avanzadas

Una vez que dominas lo básico, hay un montón de funcionalidades que hacen de Lazydocker una herramienta todavía más potente.

Gráficos de métricas personalizados

Los gráficos ASCII que ves en la pestaña Stats son completamente personalizables. Por defecto muestra CPU y memoria, pero puedes añadir los que quieras,

stats: graphs: - caption: CPU (%) statPath: DerivedStats.CPUPercentage color: blue - caption: Memory (%) statPath: DerivedStats.MemoryPercentage color: green - caption: Network I/O statPath: NetworkUsage color: yellow

Puedes añadir cualquier métrica que exponga la API de Docker. Da gusto tener los gráficos ahí, en tiempo real, sin tener que abrir herramientas externas.

Docker remoto sobre SSH

Esto es algo que no existía en la versión de 2019 y que ahora está totalmente soportado. Si tienes un Docker daemon en un servidor remoto, puedes conectarte por SSH directamente,

DOCKER_HOST=ssh://user@server lazydocker

Lazydocker también respeta los Docker contexts, así que si tienes configurados contextos para diferentes entornos,

docker context use mi-servidor-produccion lazydocker

Y ya estás gestionando los contenedores del servidor remoto como si estuvieran en local. Esto es muy útil cuando tienes varios servidores y no quieres estar abriendo sesiones SSH para cada uno.

Podman

Aunque Lazydocker está diseñado para Docker, funciona con Podman sin problemas si tienes configurado el alias,

alias docker=podman

O si usas el socket de Podman directamente,

DOCKER_HOST=unix:///run/user/1000/podman/podman.sock lazydocker

Esto es especialmente útil si, como yo, tienes máquinas donde prefieres Podman por su arquitectura rootless y su integración con systemd. No tienes que aprender una herramienta nueva solo porque cambias de motor de contenedores. Lazydocker te da exactamente la misma interfaz, los mismos atajos, la misma experiencia.

Eso sí, ten en cuenta que el soporte no es nativo. Los pods de Podman, por ejemplo, no se muestran como tales en la interfaz. Para contenedores individuales va de maravilla, pero si tu flujo depende de los pods, igual necesitas mirar alternativas más específicas.

Gestión de redes

El panel de redes (tecla 6) es otra de las incorporaciones posteriores a 2019. Desde ahí puedes ver todas las redes Docker, inspeccionar su configuración, y eliminarlas. También admite operaciones en bloque con la tecla b.

Tecla + para modo pantalla completa

Si necesitas más espacio, puedes pulsar + para cambiar entre los modos de pantalla: normal, half y fullscreen. En el modo fullscreen, el panel seleccionado ocupa toda la pantalla, ideal para ver logs largos o estadísticas con detalle.

Traducciones

Lazydocker está traducido a varios idiomas: inglés, español, polaco, neerlandés, alemán, turco, francés y portugués. Se configura automáticamente según el locale del sistema, o puedes forzarlo en la configuración,

gui: language: "es"

Lazydocker en el ecosistema

Una de las cosas que más valoro de las herramientas de terminal es cómo se integran con el resto de mi flujo de trabajo.

Alias

Lo primero que hago después de instalar Lazydocker es crear un alias,

alias lzd='lazydocker'

Cuatro letras. Entras y sales en segundos.

Con just

Si usas just como task runner, puedes añadir recetas para Docker que integren Lazydocker,

# Gestionar contenedores con lazydocker lzd: lazydocker # Limpiar todo lo que no se usa prune: lazydocker --bulk prune # Logs de un contenedor específico logs: lazydocker --filter {{NAME}}

No es que Lazydocker necesite un task runner, pero tenerlo en just te permite estandarizar los comandos en tu equipo o compartirlos con el resto del equipo.

En servidores remotos

Para gestión remota, como te comentaba antes, la combinación de Docker contexts + Lazydocker es una maravilla. Configuras el contexto,

docker context create remote --docker "host=ssh://user@server" docker context use remote lazydocker

Y tienes toda la interfaz de Lazydocker apuntando al servidor remoto. Sin Web UI, sin abrir puertos, sin exponer nada. Solo SSH.

Pros y contras

Después de usarlo a diario durante años, te doy mi opinión sincera.

Lo bueno

  • Es rapidísimo. Arranca en menos de un segundo. No hay que esperar a que cargue una web ni nada.
  • Sin dependencias. Un binario estático de 12 MB. Lo copias a cualquier máquina y funciona.
  • La misma filosofía que lazygit. Si ya usas lazygit, sabes manejarlo desde el primer minuto.
  • Docker Compose integrado. Subir, bajar, ver logs de servicios y proyectos sin moverte del terminal.
  • Operaciones masivas. La tecla b te ahorra horas de comandos de limpieza.
  • Muy activo. 52k estrellas, 100+ contribuidores, actualizaciones frecuentes. No es un proyecto abandonado.
  • Docker remoto. SSH y Docker contexts funcionan de cine.
  • Open source y MIT. Sin limitaciones.

Lo malo

  • No edita Dockerfiles. Para eso necesitas tu editor de confianza.
  • No gestiona Swarm. Si trabajas con Docker Swarm, necesitas otra herramienta.
  • No es web. Si prefieres una interfaz gráfica a la que acceder desde el navegador, Portainer es mejor opción.
  • Depende de Docker (o Podman). Obvio, pero por decirlo.

¿Para quién es?

Lazydocker es para ti si,

  • Pasas el día en el terminal
  • Gestionas varios contenedores a la vez
  • Usas Docker Compose en desarrollo
  • Quieres algo que arranque en milisegundos y no ocupe nada
  • Ya usas lazygit y te gusta la filosofía

No es para ti si,

  • Prefieres interfaz web
  • Necesitas gestionar clusters o Kubernetes
  • Solo levantas un contenedor de vez en cuando con un docker run

Alternativas

Por si Lazydocker no termina de convencerte, aquí tienes algunas alternativas,

HerramientaTipoEstrellasIdeal para
LazydockerTUI terminal52.1kDevs de terminal, Docker local/remoto
PortainerGUI web38kProducción, equipos, multi-host, Swarm
Podman DesktopGUI desktop5.5kUsuarios de Podman, escritorio
DryTUI terminal2.8kMonitoring, sin Compose
DockstationGUI desktop1.1kWindows, interfaz limpia

Cada una tiene su sitio. Portainer es la reina en entornos de producción con equipos. Podman Desktop es genial si usas Podman como motor principal y quieres una interfaz gráfica nativa. Pero para el día a día en el terminal, no hay nada como Lazydocker.

Conclusión

Cuando escribí el artículo original en 2019, Lazydocker era una herramienta prometedora pero todavía verde. No tenía panel de redes, no tenía exec shell, no tenía navegación numérica, no tenía Docker Compose v2, no tenía Docker remoto, no tenía filtros. Y aun así, ya era una herramienta útil. Recuerdo que en aquel momento lo recomendaba con cautela, porque aunque funcionaba bien, se notaba que era un proyecto joven.

Siete años después, con 47 releases a sus espaldas, Lazydocker se ha convertido en la TUI de referencia para Docker. No ha perdido su esencia: sigue siendo rápida, ligera, y terriblemente eficaz. Pero ha ganado madurez, funcionalidades, y una comunidad que lo mantiene vivo. Cada release ha ido puliendo las aristas, añadiendo lo que faltaba, y eliminando lo que sobraba.

Si trabajas con Docker a diario y aún no lo has probado, te estás perdiendo una de esas herramientas que, cuando las pruebas, no entiendes cómo has podido vivir sin ellas. Instálalo, pásale los contenedores que tengas corriendo, y en cinco minutos te preguntarás por qué no lo hiciste antes. Es como descubrir tmux después de años usando terminales sin pestañas. No hay vuelta atrás.

Y si ya lo usabas desde 2019, actualiza a la última versión. El salto de la v0.12 a la v0.25.2 es enorme. Merece la pena dedicar cinco minutos a leer el changelog y redescubrir lo que ha cambiado.


Más información,

Deja una respuesta