5.5 KiB
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.
- Borrado (
- 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=truehabilitada si se requiere soportar borrados remotos de manifests).
Instalación y Compilación
- Clona el repositorio o sitúate en el directorio del proyecto:
cd registry-tui
- Compila el binario ejecutable:
go build -o registry-tui main.go
- (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:
- Navegar entre el Registro y el entorno Local
- Al iniciar la aplicación por defecto te encuentras en el modo
[REGISTRY]. - Pulsa
Lpara alternar instantáneamente al modo[LOCAL]y visualizar las imágenes disponibles en tu demonio de Docker local. - Pulsa
Rpara volver al modo[REGISTRY](esta acción además fuerza un refresco automático del catálogo remoto).
- Al iniciar la aplicación por defecto te encuentras en el modo
- 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 eldocker pushnativo y limpiar los rastros locales innecesarios, dejándola disponible en el servidor.
- Sitúate en el modo Local (
- 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 pulsaEnter.
- 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
ypara confirmar el borrado, onpara 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


