En este post te mostraremos cómo instalar y utilizar tu entorno de pruebas para iniciarte de forma rápida con el tema de contenedores. Pero además ¿Backend de virtualización sin Hyper-V? y “Oye viejo, mi App está en .Net y no corre en Linux” 😱
No sólo se trata de instalar y dar clic en siguiente (bueno a veces chi 🤭), también saber qué instalas y porqué; te ayudará a tener control en tu entorno local y desde luego a reconocer tus requerimientos tecnológicos al pasar a un entorno productivo.
Requisitos Hardware Software
Si utilizas Windows, no hay mejor referencia acerca de los requisitos que los mostrados en el siguiente enlace; en un post anterior indicamos algunas recomendaciones si instalas en este sistema operativo y consideras utilizar la misma máquina para desarrollo y depuración.
Los requisitos para Mac se pueden ver en este enlace, dependiendo de si tu Mac utiliza procesador Intel o uno de Apple.
En el caso de Linux se pueden seguir los pasos dependiendo tu distribución en este enlace.
En este post se mostrará el uso con Windows.
Instalación En Windows
😊
Descarga el instalador, mientras tanto, revisemos que la virtualización esté habilitada en nuestra máquina:
Al ejecutar el instalador se muestra lo siguiente:
Recomendamos dejar marcada la opción WSL 2 ¿Qué es WSL 2? Daremos más detalles en párrafos posteriores, sólo ten en cuenta que esta es una característica propia de Windows llamada Windows Subsystem for Linux (WSL), y que WSL 2 se refiere a una actualización de WSL ¿Todo bien hasta aquí? 🧐
No es necesario tener previamente activado WSL para realizar esta instalación. Lo siguiente es esperar a que el proceso finalice
y reiniciar
Después de reiniciar tu maquina, se te puede preguntar si deseas que Docker realice cambios en el equipo, así que acepta los cambios. Puedes ver en el área de notificaciones cuando Docker esté en ejecución. En algunas ocasiones puedes llegar a obtener el siguiente mensaje
Descuida, sólo realiza los pasos indicados en el enlace para poder actualizar WSL a WSL 2 y no olvides reiniciar para que surta efectos los cambios. Al final del proceso, podrás obtener la siguiente pantalla
Así que podemos seguir las indicaciones, abriendo nuestra poderosisima ventana de CMD
Y listo, si regresas a la pantalla de Docker Desktop podrás notar que tienes un contenedor creado, así que pasa tu cursor sobre él y da clic en el icono con la opción “Open in Browser”
Si todo quedó bien, podrás visualizar la siguiente pantalla en tu navegador:
¡Ahora ya puedes comenzar a ejecutar comandos Docker en tu máquina! Basta con abrir CMD o PowerShell
Backend de Virtualización
Docker necesita ejecutarse en un S. O. virtualizado y para ello en Windows se tienen dos medios para tus entornos de prueba:
- Hyper-V: En versiones anteriores de Docker Desktop era la única opción; como experiencia personal, no tenía buen performance y aguante en las máquinas donde las instalaba para probar mis aplicaciones de forma local; se apoyaba además de un software llamado Kitematic
- WSL 2: Esta es una actualización de Windows Subsystem for Linux, que vino a mejorar en gran medida el trabajo y desarrollo con Docker de forma local, teniendo mejor administración de recursos que necesita del Hardware, pero además en mejorar la interoperabilidad entre la máquina anfitrión y la inquilina (Docker)
WSL como Backend implica que la máquina donde esté Docker utilice Linux, y es importante mencionar que por ese hecho nuestros contenedores ejecutarán una versión de Linux, por tanto nuestras aplicaciones deben poder ejecutarse en dicho S.O.
Y si tengo una aplicación .Net ¿Necesito migrarla a Net Core? 🙀
En mi local sí funciona… sólo si es Windows
🙀
Relax, hay opciones que puedes tomar:
- Ajusta Docker Desktop para que los contenedores que ejecutes sean Windows, para ello ir al icono en barra de notificaciones y del menú contextual clic en “Switch to Windows containers” y seguir los pasos.
- Utiliza Mono 👍
¡Ahora sí! Prepara tus aplicaciones
Es momento de que vayas preparando tus aplicaciones, hechas en el lenguaje que más uses o te guste. Si te gustaría profundizar más en algún aspecto de este post, o tener más ejemplos, déjanos tus comentarios y consideraremos realizar un post enfocado a dicho tema.
Ingeniero en Comunicaciones y Electrónica, dedicado al desarrollo de software y apoyo a la comunidad en temas de tecnología, especialmente en temas de IA. En lo personal disfruto practicar guitarra, viendo algún buen anime.