Con la aparición del WSL (Windows Subsystem for Linux), se nos abrió todo un mundo de posibilidades a los desarrolladores y entusiastas de las webs, para probar toda clase de lenguajes o herramientas, en un sistema Linux, sin la necesidad de perder demasiado tiempo en comprender, instalar y configurar máquinas virtuales dentro de nuestros ordenadores Windows.
Una de estas alternativas la compone el uso del sistema de virtualización, mediante contenedores de Docker; este también plantea un gran cambio en la manera de implementar, entornos para el desarrollo y despliegues de nuestras aplicaciones.
Ahora que ya hemos comprendido e instalado el WSL2 y Docker para Windows 10, explicado en los artículos Cómo instalar Drupal 9 usando Docker en Windows 10 Home y Cómo instalar Drupal 9 usando Docker en Windows 10 Home 2da Parte, nos enfocaremos en configurar el Docker y Docker compose dentro de nuestro WSL2; de esta forma podremos instalar Drupal o cualquier otra aplicación que nos permita Docker, sin la necesidad de grandes cambios en lo que ya tenemos.
Cómo preparar Docker y Docker Compose para utilizar con WSL en Windows 10
Paso 1 - Marcar la opción Expose daemon en Docker for windows:
A esta altura, ya tienes instalados en WSL2 y El Docker for Windows en tu ordenador, por lo tanto, lo que deberías hacer a continuación es marcar la opción, "Expose daemon on tcp://localhost:2375 without TLS" o equivalente, que aparece en la pestaña GENERAL de tu panel de Docker for windows.
Paso 2 - crear un usuario No Root para la ejecución del código:
El usuario root es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a su inmenso poder, no se recomienda usarlo de forma regular.
El siguiente paso es configurar una cuenta de usuario alternativa, con un alcance de influencia reducido para el trabajo diario. Y podremos usar el la opción SUDO, cuando necesitemos permisos especiales sin tener que cambiar de usuario.
Con el siguiente código, voy a crear un usuario nuevo, que no será root, y que utilizaremos de aquí en adelante para el resto de la configuración.
Como por defecto en la instalación de ubuntu hemos creado el usuario root, ejecutaremos el siguiente comando con el prefijo sudo, y una vez complementada la información del nuevo usuario, que si no quieres rellenar la info puedes presionar ENTER en cada pregunta, como he hecho para este ejemplo.
Luego abriremos otra pestaña en la terminal de windows, si no la tienes instalada aprende cómo hacerlo en Instalación y configuración de Terminal Windows, para no perder, de momento los accesos como root y luego continuaremos con el procedimiento:
adduser noroot_user
Una vez creado el nuevo usuario, abriremos la nueva pestaña en la terminal y ejecutaremos el siguiente código, que nos permitirá acceder con los datos de nuestro nuevo usuario:
su - noroot_user
Paso 3 - Otorgarle privilegios root a nuestro nuevo usuario:
Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces necesitemos realizar tareas administrativas. Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciarla como la cuenta root, podemos configurar lo que se conoce como "superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.
Como todavía tenemos abierta la pestaña de la terminal, donde habíamos iniciado sesión como root, vamos a ejecutar desde allí el siguiente código para otorgar los nuevos privilegios a nuestro usuario noroot_user:
usermod -aG sudo noroot_user
Una vez otorgados los permisos de root, tendremos que cerrar la otra pestaña, donde está el usuario noroot_user, para poder comenzar a utilizarlos con los permisos recién adquiridos.
Paso 4 - Instalar requisitos de Docker Compose
Aunque Docker for Windows ya viene con Docker Compose instalado, como vamos a utilizar el WSL2, ejecutaremos las siguientes líneas para completar los requisitos necesarios para el Docker Compose, como lo es Python-pib.
Para ello utilizaremos nuestro nuevo usuario, en la pestaña que acabamos de volver a abrir e identificarnos nuevamente como noroot_user, con el cual podremos ejecutar comandos usando el prefijo sudo
sudo apt-get update
sudo apt-get -y install python3-pip
sudo pip install docker-compose
sudo apt install docker.io
Aunque estemos usando Ubuntu en el WSL2 con Docker for Windows, y en la página oficial de Docker nos dice que, "generalmente" no sería necesario instalar docker-compose, por separado, para la mayoría de los usuarios de windows. En mi caso tuve que ejecutar las líneas que aparecen en la instalación de Linux para que me funcionara correctamente.
Finalmente, podremos comprobar que todo funciona correctamente si escribimos en la consola los siguientes comandos:
docker --version
docker-compose --version