--- title: "Cómo usar Lazydocker para gestionar Docker en la terminal" description: "Instala Lazydocker en Ubuntu 24.04 y gestiona contenedores, logs, estadísticas, imágenes y proyectos de Docker Compose desde una interfaz de terminal." category: "Docker Avanzado" language: es source: https://cubepath.com/es/docs/docker-avanzado/interfaz-de-usuario-de-terminal-lazydocker-para-docker updated: 2026-09-25 --- # Cómo usar Lazydocker para gestionar Docker en la terminal Lazydocker es una interfaz de terminal (TUI) escrita en Go que muestra en una sola pantalla tus contenedores, servicios de Docker Compose, imágenes, volúmenes y redes, con sus logs y el consumo de recursos en tiempo real. Es especialmente útil por SSH, donde no tienes Docker Desktop ni un panel web. En este tutorial instalarás Lazydocker en Ubuntu 24.04 desde las releases oficiales, lo usarás con un pequeño proyecto de Docker Compose y lo adaptarás con un archivo de configuración y un comando personalizado. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath. - Un usuario no root con privilegios `sudo`. - Docker Engine y el plugin de Docker Compose instalados desde el repositorio oficial de Docker. - Una terminal de al menos 100 columnas de ancho para que los paneles se vean bien. ## Paso 1: Permitir que tu usuario use Docker sin sudo Lazydocker habla con el daemon de Docker a través del socket `/var/run/docker.sock`, igual que el cliente `docker`. Si tu usuario no tiene acceso al socket, Lazydocker arrancará sin mostrar nada o con un error de permisos. Añade tu usuario al grupo `docker`: ```bash sudo usermod -aG docker $USER ``` > Advertencia: pertenecer al grupo `docker` equivale en la práctica a tener acceso root en el servidor, porque se puede lanzar un contenedor que monte `/`. Añade solo usuarios de confianza. Cierra la sesión SSH y vuelve a entrar para que se aplique el nuevo grupo. Comprueba que puedes hablar con Docker sin `sudo`: ```bash docker ps ``` ```output CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ``` Si ves la cabecera de la tabla sin errores, tienes acceso al daemon. ## Paso 2: Instalar Lazydocker desde las releases oficiales Lazydocker no está en los repositorios de Ubuntu. El proyecto publica binarios estáticos en GitHub, así que descargarás la última versión, verificarás su suma de comprobación e instalarás el binario en `/usr/local/bin`. Obtén el número de la última versión publicada desde la API de GitHub: ```bash LAZYDOCKER_VERSION=$(curl -s https://api.github.com/repos/jesseduffield/lazydocker/releases/latest | grep -Po '"tag_name": *"v\K[^"]*') echo "$LAZYDOCKER_VERSION" ``` ```output 0.24.1 ``` El número exacto puede ser mayor cuando leas esto. Descarga el archivo para tu arquitectura y el fichero de sumas de comprobación. En servidores x86_64 usa `Linux_x86_64`; en servidores ARM, cambia ese sufijo por `Linux_arm64`: ```bash cd /tmp curl -LO "https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz" curl -LO "https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/checksums.txt" ``` Verifica que el archivo descargado coincide con la suma publicada: ```bash sha256sum --ignore-missing -c checksums.txt ``` ```output lazydocker_0.24.1_Linux_x86_64.tar.gz: OK ``` Extrae el binario e instálalo con los permisos correctos: ```bash tar xf "lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz" lazydocker sudo install -m 0755 lazydocker /usr/local/bin/lazydocker ``` Comprueba la instalación: ```bash lazydocker --version ``` ```output Version: 0.24.1 Date: ... BuildSource: binaryRelease Commit: ... OS: linux Arch: amd64 ``` Para actualizar Lazydocker en el futuro, repite este paso: el nuevo binario sustituye al anterior. ## Paso 3: Crear un proyecto de prueba con Docker Compose Para ver todos los paneles con contenido, levanta un pequeño proyecto con un servidor web y una base de datos Redis. Crea un directorio para él: ```bash mkdir -p ~/demo-lazydocker cd ~/demo-lazydocker ``` Crea el archivo de Compose: ```bash nano compose.yaml ``` ```yaml services: web: image: nginx:stable-alpine ports: - "127.0.0.1:8080:80" restart: unless-stopped cache: image: redis:7-alpine restart: unless-stopped ``` El puerto se publica solo en `127.0.0.1` para no exponer el contenedor de prueba a Internet. Arranca el proyecto: ```bash docker compose up -d ``` Comprueba que ambos servicios están en marcha: ```bash docker compose ps ``` ```output NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS demo-lazydocker-cache-1 redis:7-alpine "docker-entrypoint.s…" cache 10 seconds ago Up 9 seconds 6379/tcp demo-lazydocker-web-1 nginx:stable-alpine "/docker-entrypoint.…" web 10 seconds ago Up 9 seconds 127.0.0.1:8080->80/tcp ``` ## Paso 4: Recorrer la interfaz de Lazydocker Lanza Lazydocker desde el directorio del proyecto. Cuando lo abres en un directorio con un archivo de Compose, detecta el proyecto y muestra también el panel de servicios: ```bash lazydocker ``` La pantalla se divide en dos zonas: - **Columna izquierda**: los paneles `Project`, `Services` (solo si hay un proyecto de Compose), `Containers`, `Images`, `Volumes` y `Networks`. - **Panel principal (derecha)**: el detalle del elemento seleccionado, organizado en pestañas como `Logs`, `Stats`, `Env`, `Config` y `Top`, según el tipo de elemento. Para moverte: - Las flechas izquierda y derecha (o `h` y `l`) cambian de panel en la columna izquierda. - Las flechas arriba y abajo (o `k` y `j`) recorren la lista del panel activo. - `[` y `]` cambian de pestaña en el panel principal. - `Enter` pasa el foco al panel principal para desplazarte por los logs; `Esc` vuelve. - `x` abre el menú con todas las acciones y atajos disponibles en el panel activo. - `q` sale de Lazydocker. También puedes usar el ratón para seleccionar paneles y elementos si tu terminal lo admite. Selecciona el servicio `web` y abre la pestaña `Logs`. Desde otra terminal genera algo de tráfico: ```bash curl -s http://127.0.0.1:8080 > /dev/null ``` La línea de acceso de Nginx aparece al momento en el panel de logs, sin tener que ejecutar `docker compose logs -f`. ## Paso 5: Gestionar contenedores y servicios Las acciones se lanzan con una sola tecla sobre el elemento seleccionado. Estos son los atajos más usados en los paneles `Containers` y `Services`: | Tecla | Acción | |-------|--------| | `s` | Detener el contenedor o servicio | | `r` | Reiniciar | | `p` | Pausar o reanudar | | `d` | Eliminar (pide confirmación) | | `a` | Adjuntarse (attach) a la salida del contenedor | | `E` | Abrir una shell dentro del contenedor | | `m` | Ver los logs en modo completo | | `e` | Mostrar u ocultar contenedores detenidos | | `b` | Menú de acciones en bloque | | `c` | Ejecutar un comando personalizado | En el panel `Services` tienes además `u` para levantar un servicio y `U` o `D` para levantar o bajar todo el proyecto (equivalentes a `docker compose up -d` y `docker compose down`). Prueba a reiniciar la caché: selecciona `cache` y pulsa `r`. En la pestaña `Stats` del panel principal verás el uso de CPU y memoria del contenedor actualizándose en tiempo real, útil para detectar un contenedor que consume más de lo esperado. Para limpiar recursos sin usar, ve al panel `Images` y pulsa `b`: el menú en bloque permite eliminar las imágenes huérfanas, el equivalente a `docker image prune`. Los paneles `Volumes` y `Networks` ofrecen la misma opción para volúmenes y redes. > Nota: si la tecla de un atajo no hace nada, pulsa `x` en ese panel. El menú muestra los atajos reales de tu versión, que pueden variar ligeramente entre releases. ## Paso 6: Personalizar Lazydocker con config.yml Lazydocker lee su configuración de `~/.config/lazydocker/config.yml`. Puedes ver la configuración por defecto completa, con todas las claves disponibles, con: ```bash lazydocker --config ``` Crea el directorio y el archivo de configuración: ```bash mkdir -p ~/.config/lazydocker nano ~/.config/lazydocker/config.yml ``` Este ejemplo muestra marcas de tiempo en los logs, limita el historial que se carga al abrir un contenedor, cambia los colores del borde activo y añade un comando personalizado para abrir `sh` en contenedores que no tienen `bash`, como las imágenes Alpine: ```yaml gui: theme: activeBorderColor: - cyan - bold inactiveBorderColor: - white logs: timestamps: true since: '1h' tail: '500' customCommands: containers: - name: 'shell sh' attach: true command: 'docker exec -it {{ .Container.ID }} sh' ``` Cierra Lazydocker con `q` y ábrelo de nuevo para cargar los cambios. Selecciona el contenedor `web`, pulsa `c` y elige `shell sh`: se abrirá una shell dentro del contenedor. Escribe `exit` para volver a Lazydocker. Si el archivo contiene un error de sintaxis YAML, Lazydocker muestra el error al arrancar y no se abre; corrige la línea indicada y vuelve a intentarlo. ## Paso 7: Limpiar el proyecto de prueba Cuando termines de practicar, elimina los contenedores y la red del proyecto de ejemplo: ```bash cd ~/demo-lazydocker docker compose down ``` Comprueba que ya no quedan contenedores del proyecto: ```bash docker compose ps ``` ```output NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS ``` ## Solución de problemas **`permission denied while trying to connect to the Docker daemon socket`**: tu usuario no está en el grupo `docker` o no has vuelto a iniciar sesión tras añadirlo. Ejecuta `id` y comprueba que aparece `docker` en la lista de grupos. **No aparece el panel `Services`**: Lazydocker solo detecta el proyecto si lo lanzas desde el directorio que contiene `compose.yaml` (o `docker-compose.yml`). Haz `cd` al directorio del proyecto antes de ejecutarlo. **La interfaz se ve cortada o con caracteres extraños**: amplía la ventana de la terminal y asegúrate de que usa UTF-8 (`echo $LANG` debería devolver algo como `es_ES.UTF-8` o `C.UTF-8`). ## Conclusión Has instalado Lazydocker en Ubuntu 24.04 desde las releases oficiales verificadas, lo has usado para revisar logs, estadísticas y el ciclo de vida de un proyecto de Docker Compose, y lo has adaptado con un archivo de configuración y un comando propio. Como siguientes pasos, puedes añadir más `customCommands` para tareas habituales (por ejemplo, un volcado de base de datos), revisar la seguridad de tu instalación de Docker con Docker Bench for Security o limitar CPU y memoria de tus servicios en `compose.yaml` y vigilar el efecto desde la pestaña `Stats`.