2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00
2026-10-31 18:32:28 +01:00

Registry-TUI

Registry-TUI es una interfaz de usuario en terminal (TUI) ligera, rápida y de alto contraste escrita en Go que permite gestionar las imágenes de contenedores tanto locales como de otros Registry.

Está inspirada en la filosofía de Midnight Commander y diseñada específicamente para la gestión bidireccional y eficiente de imágenes Docker locales y registros remotos (Docker Registry v2).


Características Principales

  • Interfaz TUI Dual (Modo Registro / Modo Local): Alternancia fluida entre la gestión del Docker Registry remoto/local (R) y el demonio Docker local de la máquina (L).
  • Agrupación Inteligente por Proyectos: Organiza automáticamente las imágenes según el namespace o ruta del repositorio.
  • Gestión de Ciclo de Vida Completa:
    • Borrado (d): Eliminación segura de manifests en el Registry o imágenes locales en el demonio de Docker.
    • Tageado / Reestructuración (t): Capacidad de duplicar o reetiquetar imágenes con rutas y versiones personalizadas.
    • Push Automatizado (p): Envío directo de imágenes locales al Registry utilizando la CLI nativa de Docker para garantizar la sincronización de capas (Cross-Repository Blob Mount) y limpieza de etiquetas temporales.
  • Refresco Dinámico: Recálculo y sincronización de datos en tiempo real al cambiar de modo.
  • Control de conexión a Registry: Si no hay conexión al Registry indicado, se puede usar para la gestión de la imagenes locales al equipo.

Capturas de Pantalla

  • Uso de Registry v2

  • Imágenes locales del equipo

  • Control de fallo de conexión con Registry


Requisitos Técnicos

  • Go (versión 1.20 o superior para compilación).
  • Docker Engine (con acceso activo al socket Unix /var/run/docker.sock).
  • Docker Registry v2 (con la variable de entorno REGISTRY_STORAGE_DELETE_ENABLED=true habilitada si se requiere soportar borrados remotos de manifests).

Instalación y Compilación

  1. Clona el repositorio o sitúate en el directorio del proyecto:
   cd registry-tui
  1. Compila el binario ejecutable:
go build -o registry-tui main.go
  1. (Opcional) Mueve el binario a tu $PATH para ejecutarlo globalmente:
sudo mv registry-tui /usr/local/bin/

Forma de Invocación y Uso

Ejecuta la herramienta directamente desde la terminal, se intentará conectar al registry local que se esté ejecutando en el puerto 5000 (por defecto suele apuntar a http://localhost:5000)

./registry-tui

Si necesitas usar otra URL de un servidor de registro (simplemente indicalo en las opciones):

./registry-tui http://192.168.1.50:5000 

Opciones de Ayuda y CLIMuestra el panel de ayuda y flags disponibles:

./registry-tui --help

Menú de Opciones y Ejemplos Prácticos

Una vez dentro de la interfaz TUI, dispones de una barra de acciones inferior estilo Midnight Commander adaptada a las teclas de acceso rápido:

Tecla Acción Descripción
R Registry Mode Cambia a la vista del catálogo remoto y refresca los repositorios del servidor.
L Local Mode Cambia a la vista del demonio Docker local en la máquina anfitriona.
t Tagear / Copiar Duplica o reetiqueta la imagen seleccionada bajo una nueva ruta o tag.
d Borrar Elimina de forma permanente la imagen o tag seleccionado (requiere confirmación y/n).
p Push Envía una imagen local seleccionada directamente hacia el Registry configurado.
q Salir Cierra la aplicación de manera limpia.

Ejemplos detallados de uso:

  1. Navegar entre el Registro y el entorno Local
    • Al iniciar la aplicación por defecto te encuentras en el modo [REGISTRY].
    • Pulsa L para alternar instantáneamente al modo [LOCAL] y visualizar las imágenes disponibles en tu demonio de Docker local.
    • Pulsa R para volver al modo [REGISTRY] (esta acción además fuerza un refresco automático del catálogo remoto).
  2. Subir una imagen local al Registry (p)
    • Sitúate en el modo Local (L).
    • Utiliza las teclas de flecha (Arriba / Abajo) para seleccionar una imagen (por ejemplo, minilms:latest).
    • Presiona la tecla p. La herramienta se encargará de etiquetar la imagen temporalmente, ejecutar el docker push nativo y limpiar los rastros locales innecesarios, dejándola disponible en el servidor.
  3. Reetiquetar o Tagear una imagen (t)
    • Selecciona cualquier imagen de la lista (tanto en modo Local como Registry).
    • Presiona la tecla t.
    • Se abrirá un cuadro de texto inferior pidiendo la ruta de destino.
    • Introduce el nuevo tag (ejemplo: proyecto-web/alpine:v1.0) y pulsa Enter.
  4. Borrar una imagen (d)
    • Selecciona la imagen o versión específica que deseas eliminar.
    • Presiona la tecla d.
    • Aparecerá una pantalla de confirmación advirtiendo sobre la irreversibilidad de la acción.
    • Pulsa y para confirmar el borrado, o n para cancelar.

Uso de un Registry local para pruebas

Iniciar

Puede usar el script start_Registry.sh se encarga de crear (si no existe) un directorio en el que almacenar las imagenes y de iniciar un registry:2 de forma local.

Este Registry lo puede usar desde la consola con los comandos docker push o docker pull de forma normal pero atacando a http://localhost:5000

Detener

Para detenerlo es tan sencillo como ejecutar el script stop_Registry.sh

S
Description
Interfaz en modo TUI para gestion de imagenes locales de contenedores y del gestor de imagenes registry:2
Readme
17 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 97.7%
Shell 2.3%