Ir al contenido
GitHub

Docker

Alt-C o Comando → Docker muestra tus contenedores en el panel activo, agrupados por proyecto de Compose, con los contenedores que no forman parte de ningún proyecto al final. El otro panel muestra el contenedor seleccionado: su estado, puertos, redes, montajes, comando y política de reinicio, además del uso en vivo de CPU, memoria, red y disco con un gráfico del último minuto. Para un proyecto, muestra la carpeta del proyecto, sus contenedores y su uso combinado. Esc cierra la vista y guarda su filtro para la próxima vez.

La CPU aparece dos veces. Ahora % es la lectura más reciente, y Media % es la media de los últimos segundos, como en el monitor de actividad, así que se mantiene estable mientras un contenedor trabaja a ráfagas. Una lista demasiado estrecha para las dos muestra solo Media %. Los detalles muestran el mismo par como CPU ahora y CPU media, y un proyecto suma ambas cifras de sus contenedores en marcha.

Tecla Acción
↑ ↓, PgUp, PgDn, Home, End Moverse
← → / Enter Plegar o desplegar un proyecto; Enter sobre un contenedor pasa a sus detalles
S / X / R Iniciar / detener / reiniciar el contenedor, o los contenedores del proyecto
P Pausar o reanudar
F Explorar los archivos del contenedor
E, Alt-2 Abrir un shell en el contenedor, o volver a su shell abierto
Alt-1 Volver a mostrar el resumen del contenedor, también desde su shell
D Mostrar el uso de disco, o volver a los contenedores
/ Filtrar por nombre, servicio, imagen o proyecto
Alt-O Abrir la carpeta del archivo Compose junto a la lista
Tab Alternar entre la lista y los detalles
Alt-W Maximizar el panel con el foco

Detener y reiniciar piden confirmación antes. En un proyecto, una acción solo afecta a los contenedores que cambiaría, así que Iniciar solo inicia los que están detenidos.

Alt-O abre en el otro panel la carpeta del archivo Compose que inició el contenedor o el proyecto, con el cursor en el archivo, o la carpeta del proyecto cuando Compose no indica ningún archivo. La lista se queda como estaba, igual que en el monitor de actividad (consulta Actividad y memoria). Un contenedor que Compose no inició no tiene carpeta en esta computadora, así que Alt-O lo indica, y F explora sus archivos.

F sobre un contenedor en ejecución cierra la vista de Docker y muestra en ese panel el sistema de archivos del contenedor, empezando por su directorio de trabajo. El título del panel muestra el nombre del contenedor. El otro panel sigue en tu carpeta del host, de modo que F5 copia en ambas direcciones. F3 muestra, F7 crea una carpeta y F8 elimina dentro del contenedor. La búsqueda, los tamaños, las vistas previas y la edición solo funcionan en el host. Alt-C vuelve a la vista de Docker, y .. en la raíz del contenedor devuelve el panel a la carpeta del host que mostraba antes. Para explorarlo hace falta sh en el contenedor, así que no se pueden listar las imágenes mínimas sin shell.

Mientras un panel muestra los archivos de un contenedor, la línea de comandos lo sigue: se convierte en el shell de ese contenedor, iniciado en la carpeta del panel, con el nombre del contenedor al principio del prompt. Los comandos se ejecutan dentro del contenedor, el panel se actualiza cuando terminan y cd ahí mueve el panel. Ctrl-O muestra la consola de ese contenedor, marcada como ▣ nombre consola. En un panel del host, la línea de comandos y Ctrl-O vuelven a pertenecer al host, y lo que hubieras escrito ahí sigue en su sitio. Es el mismo shell que el de la pestaña Shell del contenedor en la vista de Docker.

Para mantener la línea de comandos en el host, desactiva Seguir en Opciones → Complementos. Así, mientras un panel muestra los archivos de un contenedor, la línea de comandos se atenúa y se marca como ⌂ host, y Enter no hace nada hasta que haya un panel del host activo, de modo que un comando nunca se ejecuta en la máquina equivocada.

E abre un shell en el contenedor (bash si la imagen lo tiene; si no, sh) en la pestaña Shell del panel de detalles, y le envía tus pulsaciones, teclas de función incluidas. Alt-1 muestra el resumen, Alt-C vuelve a la lista y la rueda del ratón desplaza hacia atrás la salida del shell. Un shell sigue en marcha mientras miras otros contenedores, cierras la vista de Docker o usas la consola del host; su contenedor aparece marcado con ›_ en la lista y se cuenta en el atajo Alt-C. El shell se cierra cuando sales de él, cuando su contenedor se detiene o cuando Borg sale (Borg pregunta antes si hay shells abiertos).

El complemento usa la CLI docker y su contexto actual, así que funciona igual con Docker Desktop, OrbStack, Colima y motores remotos. Puedes desactivarlo en Opciones → Complementos.

D en la vista de Docker, o F9 → Docker → Uso de disco, muestra lo que Docker guarda en disco en lugar de la lista de contenedores, con una fila por tipo: Caché de compilación, Imágenes sin nombre, Imágenes sin usar, Imágenes en uso, Contenedores detenidos, Volúmenes anónimos sin usar, Volúmenes con nombre sin usar, Volúmenes en uso y Redes sin usar. Cada fila tiene un recuento, un tamaño y lo que liberaría eliminarlo, y la línea superior suma todo lo que puedes recuperar. Borg mide con docker system df --verbose en segundo plano, lo que puede tardar en un motor muy ocupado. R vuelve a medir, y Borg hace lo mismo cuando termina el siguiente comando del prompt después de que F8 haya escrito uno.

Las imágenes sin nombre son compilaciones a las que ya nada nombra, normalmente porque su etiqueta pasó a una compilación más reciente. Las imágenes sin usar tienen nombre, y ningún contenedor se creó a partir de ellas. Las imágenes y los volúmenes que usan los contenedores, en ejecución o detenidos, se quedan hasta que se eliminan esos contenedores, así que sus filas no liberan nada. Una imagen solo libera las capas que no comparte ninguna otra imagen, por eso su tamaño recuperable puede quedar muy por debajo de su tamaño.

→ o Enter despliega un tipo en sus elementos, de mayor a menor, y ← lo vuelve a plegar. El otro panel muestra el elemento seleccionado: las etiquetas de una imagen, su ID, su tamaño compartido, su fecha de creación y su número de contenedores; el tipo de un registro de la caché de compilación, si está compartido o en uso y cuándo lo usó una compilación por última vez; la imagen y el estado de un contenedor; los datos de un volumen, que describen los párrafos siguientes. Los tamaños que Docker no pudo medir aparecen como ?, y / filtra todos los tipos a la vez. También encuentra volúmenes por su proyecto de Compose y por los contenedores e imágenes que los usan.

Las filas de volúmenes llenan el espacio que le sobra a la columna Nombre con Último uso, Creado, Proyecto y Usado por, tantas como quepan, y Alt-W maximiza el panel para verlas todas. Proyecto es el proyecto de Compose que creó el volumen. Usado por enumera los contenedores que lo montan, en ejecución o detenidos. Los volúmenes anónimos aparecen con los primeros 12 caracteres de su ID.

Último uso dice en uso mientras se ejecute un contenedor que monte el volumen. Si no, da el día en que se detuvo el último de esos contenedores, que Docker registra con exactitud. Cuando se eliminan los contenedores, Docker deja de guardar registro alguno del uso del volumen. Donde Borg lee directamente los archivos de un volumen, también mira cuándo cambiaron por última vez, y un cambio posterior aparece como ese día con ~ delante. Ese día es una estimación: leer un archivo no deja rastro, así que el volumen puede haberse usado después. Una celda vacía significa que Borg no sabe ninguno de los dos.

El otro panel muestra la hora completa del último uso y de la creación, el proyecto de Compose con el nombre que tiene el volumen en él, y el Controlador cuando el volumen usa un controlador distinto de local o tiene opciones. Cada contenedor que monta el volumen ocupa una línea con su estado y la ruta donde lo monta. En un volumen anónimo, esos contenedores aparecen en Creado para, con sus imágenes. Docker olvida ese contenedor en cuanto se elimina. Carpeta y Contiene muestran dónde están los archivos en esta máquina y qué hay en la raíz del volumen.

Enter sobre un volumen muestra sus archivos en el panel, en solo lectura. El título marca el panel con ▥ y solo lectura, y las rutas empiezan en la raíz del volumen. F3 muestra archivos y F5 copia archivos al otro panel. Borg rechaza todo lo que cambiaría el volumen: editar, mover, borrar, crear carpetas, comprimir y copiar dentro de él. .. en la raíz del volumen devuelve el panel a la carpeta que mostraba antes, y la línea de comandos se queda en esa carpeta todo el tiempo. Una sesión guardada mientras un panel muestra un volumen abre esa carpeta la próxima vez.

Borg lee directamente los archivos de un volumen cuando están en esta máquina. Con OrbStack en macOS, están en lo que OrbStack comparte en ~/OrbStack/docker/volumes, que macOS trata como un volumen de red: da acceso a Volúmenes de red a tu app de terminal en Ajustes del Sistema › Privacidad y seguridad › Archivos y carpetas. En Linux, Borg lee la carpeta del volumen cuando el motor se ejecuta en la misma máquina y Borg puede abrirla, como con Docker en modo rootless o cuando Borg se ejecuta como root. La búsqueda y los tamaños funcionan entonces como en cualquier carpeta.

En los demás casos, como con Docker Desktop, un contexto remoto o Docker en Linux cuando solo root lee sus carpetas, Borg muestra los archivos mediante un contenedor auxiliar. El auxiliar ejecuta la imagen busybox, fijada a una sola compilación, sin red, con el sistema de archivos de solo lectura y sin más privilegio que leer archivos, y monta el volumen en solo lectura. La primera vez, Borg pregunta antes de que Docker descargue la imagen, de unos 2 MB, que luego se queda en el motor como borg-commander/volume-helper. El pie muestra Descargando busybox… o Iniciando el contenedor auxiliar… hasta que se abre el panel. Borg elimina el auxiliar cuando el panel sale del volumen o cuando Borg termina, y un auxiliar que quede atrás se detiene solo al cabo de un día. Ahí la búsqueda y los tamaños solo funcionan en el host, como en los archivos de un contenedor, y el uso de disco no cuenta el auxiliar entre los contenedores que usan el volumen.

Cuando termina una medición, Borg lee en segundo plano los volúmenes a los que llega directamente, de mayor a menor, y el pie muestra Leyendo los archivos de los volúmenes… hasta terminar. R los vuelve a leer al medir de nuevo.

F8 escribe el comando de limpieza de la fila seleccionada en el prompt del shell del host y muestra la consola. No se ejecuta nada hasta que pulses Enter, así que puedes leer el comando, cambiarlo o borrarlo antes con Ctrl-U. En un tipo, F8 escribe su prune, como docker image prune -a para las imágenes sin usar o docker volume prune para los volúmenes anónimos sin usar, y Docker pide confirmación antes de borrar nada. En un elemento, F8 escribe docker rmi, docker rm o docker volume rm con ese elemento, o con todas las imágenes, contenedores o volúmenes marcados. Space o Insert marca un elemento, y * invierte las marcas del tipo seleccionado. Una imagen se elimina por todas sus etiquetas, ya que Docker la borra con la última, o por su ID cuando no tiene ninguna. Los registros de la caché de compilación se eliminan juntos con docker builder prune. Borg nunca añade -f ni --force. Un nombre con un carácter de control no recibe ningún comando, porque el prompt tomaría ese carácter como una tecla.

Los volúmenes guardan los datos que escribieron los contenedores, como los archivos de una base de datos, y un volumen eliminado no se puede recuperar. El otro panel lo recuerda junto a cada comando de volúmenes. Cuando la CLI docker tiene más de un contexto, los comandos nombran el que usó Borg para medir, como en docker --context staging image prune, para que lleguen al mismo motor sea cual sea el contexto que elegiría el shell. Siempre van al shell del host, también mientras un panel muestra los archivos de un contenedor, porque la vista de Docker mantiene la línea de comandos en el host.

Esta guía sigue la rama main · Borg 0.11.0 · 1f6bce6
Puede que la última versión publicada no incluya todo lo que se describe aquí. Notas de la versión

Traducción de la guía en inglés. Las correcciones son bienvenidas. Los comandos y los atajos de teclado no se traducen.