Si te estás aventurando en el mundo Docker y tienes Windows como sistema operativo, es bastante probable que te topes con algunos detalles a revisar, puesto que acá se encuentran la mayoría de retos.
¡Como es de costumbre, te contaré mi historia!
Era un día normal, solo me sentaría un momento frente al ordenador y haría un par de instalaciones, WSL (Windows Subsystem For Linux) con alguna distro y Docker ¿qué podría salir mal? me temo que, si ocurrieron problemas, pero no estoy solo, por lo que estás aquí, también te habrá pasado ¡Oops! pero no te preocupes, te paso la solución, que espero a ti también te funcione. Te cuento, me instalé unas 3 distros (Debian, Ubuntu y Kali) ¡Qué locura! fíjate que empecé a probar en Kali con un simple docker ps
, por supuesto, para ver los procesos corriendo en Docker, aunque más bien me llevé el siguiente mensaje, que probablemente sea igual al tuyo.
Resulta que el comando docker no puede ser encontrado en distros con WSL versión 1. Lo cual, el mismo prompt nos recomienda convertir dicha distro a la versión de WSL 2 y activar la integración en las configuraciones de Docker Desktop. Déjame decirte que este procedimiento ya lo he hecho con Debian y Ubuntu y ha funcionado sin piedras en el camino. Te muestro cómo hacer esto para Kali Linux, que es a la vez, el mismo procedimiento para las demás distros. ¡Vamos a ello!
Revisar la versión de cada distro WSL
Ejecuta una terminal, con el CMD o Git Bash viene bien, ejecutamos WSL con los parámetros -l -v para obtener una lista detallada con su estado y versión.
C:\Users\Administrador> wsl -l -v
NAME STATE VERSION
* Debian Running 2
Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
kali-linux Running 1
Antes de todo, revisa que la configuración que tengas en tu Docker Desktop sea la siguiente y esté usando el motor basado en WSL 2.
Puedes observar que kali-linux está en ejecución, pero no tiene activada la versión 2, esto también lo podemos encontrar desde la configuración de Docker Desktop.
Al habilitarlo, tendremos en la lista, la nueva distro Kali Linux.
Cambiar la versión de Kali Linux a la versión 2 de WSL
Ejecutar desde la terminal, la siguiente instrucción:
> wsl.exe --set-version Debian 2
Si tienes en ejecución la distro con Windows Terminal o directamente desde el WSL, este proceso se cerrará debido a que se estará ejecutando el cambio de versión.
Por otro lado, tu consola dirá algo como esto:
C:\Users\Administrador> wsl.exe --set-version kali-linux 2
Conversión en curso, esto puede tardar unos minutos...
Para información sobre las diferencias clave con WSL 2, visita https://aka.ms/wsl2
Conversión completada.
Habilitar la distribución Kali para la integración con WSL
Para que aparezca la nueva distro, tendrás que refrescar, luego activar la nueva distro, por último tendrás que darle al botón "Apply & Restart", eso bastará para tener todo bien habilitado.
Bien, parece que todo es buena noticia, pues para que sea verídica, habrá que hacer una última prueba, y es tirar comandos docker en la distro Kali Linux.
┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒ https://www.kali.org/docs/troubleshooting/common-minimum-setup/
┃
┗━(Run “touch ~/.hushlogin” to hide this message)
┌──(kali㉿DESKTOP-V88H2KJ)-[/mnt/c/Users/Administrador]
└─$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
┌──(kali㉿DESKTOP-V88H2KJ)-[/mnt/c/Users/Administrador]
└─$ docker run -d -p 80:80 docker/getting-started
Unable to find image 'docker/getting-started:latest' locally
latest: Pulling from docker/getting-started
540db60ca938: Pull complete
0ae30075c5da: Pull complete
9da81141e74e: Pull complete
b2e41dd2ded0: Pull complete
7f40e809fb2d: Pull complete
758848c48411: Pull complete
23ded5c3e3fe: Pull complete
38a847d4d941: Pull complete
Digest: sha256:10555bb0c50e13fc4dd965ddb5f00e948ffa53c13ff15dcdc85b7ab65e1f240b
Status: Downloaded newer image for docker/getting-started:latest
5622e8575955dcd40aff098970dd2203c030f06edf1c50c8325a44a9ca4b826a
┌──(kali㉿DESKTOP-V88H2KJ)-[/mnt/c/Users/Administrador]
└─$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5622e8575955 docker/getting-started "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp reverent_tereshkova
Conclusión
¡Se ha hecho!
Déjame saber si te interesa un minicurso de WSL 2 o algo relacionado a Docker.
With supporting text below as a natural lead-in to additional content.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.