Skip to content

MrTanuk/docker-manager

Repository files navigation

DockerManager - Gestor de Contenedores Seguro con Tauri v2

Captura de pantalla de DockerManager

Una aplicación de escritorio moderna para gestionar contenedores Docker, con un enfoque en el control de recursos (CGroups), aislamiento (Namespaces) y seguridad.

Rust React License Tauri


✨ Características Principales

🚀 Gestión y Despliegue

  • 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.

🔍 Inspector Profundo

  • 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 usando ttyd.

🛡️ Pruebas de Estrés y Seguridad

  • 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.

📖 Guía de Uso

1. Crear un Nuevo Contenedor

En la barra lateral izquierda encontrarás el panel de creación:

  1. Imagen Base: Selecciona una imagen de Docker disponible en tu sistema local.
  2. Nombre: Asigna un identificador único.
  3. Variables: Añade claves/valores (ej. DB_PASSWORD=secret).
  4. Recursos: Desliza los controles para limitar CPU (0.1 a 1 core) y RAM.
  5. 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.
  6. Haz clic en Desplegar.

2. Gestión de Ciclo de Vida

En la lista "Deployments":

  • Estado: El punto verde/rojo indica si está Running o Exited.
  • Acciones Rápidas: Al pasar el mouse, verás botones para:
    • ▶️ Iniciar
    • ⏹️ Detener
    • 🔄 Reiniciar
    • 🗑️ Eliminar (Forzado)

3. Inspector (Panel Derecho)

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.

🛠️ Tecnologías Utilizadas

  • 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).

📋 Prerrequisitos

1. Docker

El demonio de Docker debe estar corriendo.

2. ttyd (Para la terminal web)

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

3. Dependencias de Desarrollo (Solo para compilar)

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

🚀 Ejecución y Compilación

  1. Instalar dependencias JS:

    npm install
  2. Modo Desarrollo:

    npm run tauri dev
  3. Compilar para Producción:

    npm run tauri build

    El binario final estará en src-tauri/target/release/bundle/.


📄 Licencia

Este proyecto está bajo la Licencia MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published