Una aplicación de escritorio moderna para gestionar contenedores Docker, con un enfoque en el control de recursos (CGroups), aislamiento (Namespaces) y seguridad.
- Creación Parametrizada: Interfaz sencilla para configurar:
- Límites de Hardware: Define cuánta CPU y RAM (MB) puede usar el contenedor.
- Seguridad (Read-Only FS): Bloquea la escritura en el sistema de archivos del contenedor para evitar persistencia de malware.
- Red (Networking): Decide si exponer puertos al host o mantener el contenedor aislado en su propia red.
- Variables de Entorno: Inyecta secretos y configuraciones (
KEY=VALUE) fácilmente.
- Monitor en Tiempo Real: Gráficas de CPU y RAM que respetan visualmente los límites configurados (CGroups).
- Verificación de Aislamiento: Visualiza los Namespaces (PID, UTS, Network) para confirmar que el contenedor es invisible para otros procesos.
- Explorador de Archivos: Navega por los logs o archivos generados en los volúmenes montados sin entrar a la terminal.
- Terminal Web: Acceso directo a una shell (
/bin/bash) dentro del contenedor usandottyd.
- Stress Testing: Inyecta carga sintética de CPU y Memoria para verificar que el Kernel mata o limita el proceso correctamente.
- Auditoría de FS: Verifica si el sistema de archivos es realmente de solo lectura.
En la barra lateral izquierda encontrarás el panel de creación:
- Imagen Base: Selecciona una imagen de Docker disponible en tu sistema local.
- Nombre: Asigna un identificador único.
- Variables: Añade claves/valores (ej.
DB_PASSWORD=secret). - Recursos: Desliza los controles para limitar CPU (0.1 a 1 core) y RAM.
- Configuración Avanzada:
- FS Read-Only: Actívalo para máxima seguridad (el contenedor no podrá guardar cambios).
- Exponer Red: Actívalo para mapear un puerto. Si lo desactivas, el contenedor estará aislado de la red externa.
- Haz clic en Desplegar.
En la lista "Deployments":
- Estado: El punto verde/rojo indica si está
RunningoExited. - Acciones Rápidas: Al pasar el mouse, verás botones para:
▶️ Iniciar- ⏹️ Detener
- 🔄 Reiniciar
- 🗑️ Eliminar (Forzado)
Al seleccionar un contenedor, se abre el inspector con varias pestañas:
- Overview: Resumen de IPs, puertos y estado de seguridad.
- Config: Permite editar variables de entorno. Nota: Al guardar, el contenedor se recreará.
- Cgroups: Gráficas de rendimiento. Usa el botón "Inyectar Carga" para probar los límites.
- Namespaces: Compara los PIDs del Host vs Contenedor para visualizar el aislamiento.
- Storage: Lista los archivos en la ruta de logs montada.
- Frontend: React 19, TypeScript, TailwindCSS v4, Recharts.
- Backend: Rust, Tauri v2.
- Docker Engine: Comunicación directa vía
bollard(Rust Docker Client). - Herramientas:
stress-ng(para pruebas de carga),ttyd(para la terminal web).
El demonio de Docker debe estar corriendo.
La aplicación usa ttyd para exponer la terminal del contenedor vía WebSocket.
- Ubuntu/Debian:
sudo apt install ttyd - Arch:
sudo pacman -S ttyd - Mac:
brew install ttyd
Ver librerías necesarias (Linux)
sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev-
Instalar dependencias JS:
npm install
-
Modo Desarrollo:
npm run tauri dev
-
Compilar para Producción:
npm run tauri build
El binario final estará en
src-tauri/target/release/bundle/.
Este proyecto está bajo la Licencia MIT.
