Como ejecutar en Windows un entorno creado en Ubuntu


Docker ofrece ventajas clave para el desarrollo y despliegue de aplicaciones, especialmente cuando necesitas portabilidad, consistencia y eficiencia. Estas son las principales ventajas de usar Docker:

  • Portabilidad total: Los contenedores Docker encapsulan la aplicación junto con todas sus dependencias, lo que permite ejecutarla en cualquier sistema que tenga Docker instalado, independientemente del sistema operativo o la configuración de la máquina anfitriona
  • Aislamiento: Cada aplicación corre en su propio contenedor, lo que evita conflictos entre diferentes aplicaciones o versiones de librerías. Esto facilita el desarrollo de múltiples proyectos en paralelo y mejora la seguridad.
  • Consistencia de entornos: Docker elimina el clásico problema de «funciona en mi máquina» porque garantiza que el entorno de desarrollo, pruebas y producción sean idénticos para todos los usuarios y equipos.
  • Eficiencia en el uso de recursos: Los contenedores son mucho más ligeros que las máquinas virtuales tradicionales, ya que no requieren un sistema operativo completo para cada instancia. Esto permite ejecutar más aplicaciones en el mismo hardware, ahorrando recursos y costes.
  • Escalabilidad y rapidez: Es fácil escalar aplicaciones añadiendo o eliminando contenedores según la demanda. Además, los contenedores se inician en segundos, acelerando el despliegue y la respuesta ante cambios o picos de trabajo.
  • Automatización y DevOps: Docker se integra perfectamente con flujos de trabajo DevOps y herramientas de CI/CD, facilitando la automatización de pruebas, despliegues y actualizaciones de aplicaciones.
  • Control de versiones y modularidad: Docker permite versionar imágenes, retroceder a versiones anteriores y reutilizar componentes, facilitando el mantenimiento y la colaboración en equipos grandes
  • Facilidad de colaboración: Los equipos pueden compartir imágenes Docker preconfiguradas, asegurando que todos trabajen en el mismo entorno y reduciendo errores por diferencias de configuración.

En resumen, Docker te permite desarrollar, probar y desplegar aplicaciones de forma más rápida, consistente, eficiente y segura, facilitando la colaboración y la portabilidad entre diferentes sistemas y equipos.

Aquí vamos a ver paso a paso para implementar la solución híbrida WSL 2 + Docker de un entorno funcional en Ubuntu y que tiene instalado NILMTK, NILMTK-CONTRIB y NILMTK-METADATA:

📦 Paso 1: Exportar entorno Ubuntu desde máquina física

1.1 Preparar sistema Ubuntu

# En tu máquina física Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io tar -y
sudo systemctl enable docker

1.2 Crear imagen Docker del entorno

# Crear Dockerfile
cat <<EOF > Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y python3.8 python3-pip \
&& pip install nilmtk==0.4.3 nilm_metadata==0.2.4
EOF

# Construir imagen
sudo docker build -t nilmtk-env .

1.3 Exportar imagen Docker

sudo docker save nilmtk-env > nilmtk-env.tar

🖥️ Paso 2: Configurar WSL 2 en Windows 11

2.1 Habilitar WSL 2

powershell# Ejecutar como Administrador
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2

2.2 Instalar distribución Ubuntu

powershellwsl --install -d Ubuntu-22.04

🔄 Paso 3: Importar entorno a WSL 2

3.1 Transferir archivo .tar

bash# Desde Ubuntu físico:
scp nilmtk-env.tar usuario@windows:/mnt/c/Users/tu_usuario/

3.2 Importar imagen en WSL 2

bash# En WSL Ubuntu:
docker load < /mnt/c/Users/tu_usuario/nilmtk-env.tar

🐳 Paso 4: Configurar Docker Desktop

4.1 Instalar Docker Desktop

  1. Descargar desde docker.com
  2. Instalar con opción WSL 2 backend activada

4.2 Integrar WSL 2

  1. Abrir Docker Desktop
  2. Ir a Settings > Resources > WSL Integration
  3. Activar integración con Ubuntu-22.04

![Integración WSL en Docker](https://docs.docker.com/desktop/images 🚀 Paso 5: Ejecutar entorno NILMTK

5.1 Iniciar contenedor

bashdocker run -it --rm \
  -v $(pwd):/nilmtk \
  --gpus all \
  nilmtk-env \
  bash

5.2 Verificar instalación

bash# Dentro del contenedor:
python3 -c "import nilmtk; print(nilmtk.__version__)"
# Debe mostrar: 0.4.3

textgraph TD
    A[Windows 11] --> B[WSL 2 Ubuntu]
    B --> C[Docker Desktop]
    C --> D[Contenedor nilmtk-env]
    D --> E[VS Code]

Comandos útiles:

FunciónComando
Acceder WSLwsl -d Ubuntu-22.04
Limpiar memoriawsl --shutdown
Ver recursosdocker stats

⚠️ Solución de problemas comunes

Error: «WSL integration not available»

powershellwsl --update
Restart-Service LxssManager

Error: «GPU not detected»

  1. Actualizar drivers NVIDIA
  2. Instalar WSL CUDA support

Espacio en disco insuficiente

bash# Compactar VHDX de WSL
wsl --shutdown
diskpart
select vdisk file="C:\Users\tu_usuario\AppData\Local\Packages\...\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

Con este setup tendrás un entorno 100% funcional de NILMTK en Windows 11, combinando lo mejor de WSL 2 y Docker. 🐧+🪟=💥

Si tu PC con Windows11 va lento prueba esto


¿Notas que tu PC con Windows 11 cada vez responde más lento, incluso en tareas sencillas como abrir carpetas, lanzar aplicaciones o navegar por tus archivos? Esta situación es más común de lo que parece, incluso en equipos relativamente modernos, y suele deberse a la acumulación de pequeños problemas: demasiados programas en segundo plano, espacio insuficiente en disco, efectos visuales innecesarios o simplemente falta de mantenimiento básico. Antes de tomar la drástica decisión de formatear tu ordenador y perder todos tus datos y configuraciones, existen varias soluciones sencillas y efectivas que puedes probar para devolverle agilidad a tu equipo.

windows

Windows 11 está diseñado para ser rápido y eficiente, pero con el uso diario, la instalación de nuevos programas y actualizaciones, o incluso la presencia de malware, el sistema puede ralentizarse notablemente. Por suerte, no necesitas ser un experto ni instalar programas adicionales para optimizar el rendimiento de tu PC. Con unos cuantos ajustes y buenas prácticas, es posible recuperar buena parte de la velocidad original de tu equipo, y en muchos casos, evitar el tedioso proceso de reinstalar el sistema operativo.

Aquí van algunas recomendaciones (muchas de ellas necesitaran permisos de administrador):

1. Optimizar el inicio:

Desactiva los programas innecesarios que se ejecutan al arrancar tu PC desde el Administrador de tareas. Esto reduce el tiempo de arranque y libera recursos para las aplicaciones que realmente necesitas. Para ello puedes seguir estos pasos:

  • Abre el Administrador de tareas (Ctrl + Shift + Esc) y ve a la pestaña Inicio.
  • Desactiva programas innecesarios que se ejecutan al inicio del sistema.

2. Liberar espacio en el SSD

Elimina archivos temporales y utiliza herramientas como el Liberador de espacio en disco para mantener tu SSD con suficiente espacio libre, lo que mejora la velocidad general del sistema

  • Elimina archivos temporales (Win + R, escribe temp y prefetch, borra los archivos dentro de esas carpetas).
  • Usa la herramienta Liberador de espacio en disco (Win + R, escribe cleanmgr).
  • Desactiva la hibernación (Win + R, escribe cmd, luego powercfg -h off en la ventana de comandos).

3. Comprobar el uso de RAM y CPU

Identifica procesos que consumen demasiados recursos y ciérralos si no son esenciales, ayudando a que el sistema responda mejor.

  • Desde el Administrador de tareas, revisa si algún proceso está consumiendo muchos recursos y ciérralo si no es esencial.

4. Actualizar drivers y Windows

Instala las últimas actualizaciones de Windows y drivers, especialmente los de la tarjeta gráfica y el chipset, para asegurar compatibilidad y rendimiento óptimos

  • Mantén Windows Update al día (Win + I > Windows Update).
  • Usa el Administrador de dispositivos (Win + X > Administrador de dispositivos) para actualizar drivers, especialmente los de gráficos y chipset.

5. Desactivar efectos visuales

Ajusta la configuración de rendimiento para desactivar animaciones y efectos que consumen recursos, algo especialmente útil en equipos con hardware limitado o por lo menos no tan reciente

  • Ve a Configuración avanzada del sistema (Win + R, escribe sysdm.cpl).
  • En Opciones avanzadas > Rendimiento, marca Ajustar para obtener el mejor rendimiento.

6. Realizar un escaneo en busca de malware

Realiza análisis completos con Windows Defender o tu antivirus de confianza para descartar infecciones que puedan estar ralentizando tu equipo

  • Ejecuta un análisis completo con Windows Defender o un antivirus de confianza para asegurarte de que no haya malware afectando el rendimiento.

Si después de estos ajustes sigue lento, podrías considerar ampliar la RAM, ya que Windows 11 funciona mejor con 16GB en vez de 8GB. También puedes probar reinstalar Windows 11 desde cero para eliminar posibles conflictos.