DEV Community

Cover image for Cómo instalar Docker CLI en Windows sin Docker Desktop y no morir en el intento
Julian Lasso 🇨🇴
Julian Lasso 🇨🇴

Posted on • Edited on

Cómo instalar Docker CLI en Windows sin Docker Desktop y no morir en el intento

En este post, exploraremos cómo instalar y configurar Docker CLI en Windows sin la necesidad de Docker Desktop. Aunque Docker Desktop es una herramienta conveniente y popular para manejar contenedores Docker en entornos de desarrollo, hay situaciones en las que se prefiere o se requiere una alternativa más ligera o específica. Ya sea por restricciones de licencia, necesidades de recursos mínimos o preferencias personales, instalar solo Docker CLI puede ser la solución ideal. Te guiaré a través de los pasos necesarios para configurar tu entorno Windows para usar Docker CLI, aprovechando las capacidades de WSL 2 (Subsistema de Windows para Linux versión 2) y sin la sobrecarga de Docker Desktop. Esto no solo te proporcionará un control más granular sobre tus contenedores Docker, sino que también optimizará el uso de recursos en tu máquina.

Pasos Previos a la instalación

Los siguientes pasos los he probado en Windows 10, pero supongo funcionarán igual para windows 11.

Lo primero que hay que hacer es instalar el wsl y para ello abre una consola de PowerShell y escribe el siguiente comando

wsl --install
Enter fullscreen mode Exit fullscreen mode

Después del paso anterior, hay que reiniciar el sistema operativo.

Nota: Según leo, el siguiente comando hace lo mismo pero adicional reinicia el computador cuando termina de hacer la instalación necesaria.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Cuando el computador se haya reiniciado, se abrirá una ventana como la siguiente

Consola terminando de instalar linux

Después de esperar un tiempo, saldrá un mensaje en inglés, que te dirá que introduzcas el nombre de usuario para tu usuario en linux y también pedirá la contraseña. Anota muy bien tu usuario y contraseña porque lo necesitaremos más adelante.

Consola solicitando nombre de usuario para la distribución linux

Consola solicitando contraseña y confirmación de la misma para nuestro usuario en linux

Una vez se haya terminado con éxito, entonces llega el momento de empezar a instalar Docker CLI y estaremos ubicados en la consola de nuestra distribución linux.

Consola linux lista para empezar a trabajar

Nota: es importante tener presente que la distribución que se instala por defecto es Ubuntu 22 al momento de escribir este tutorial.

Una vez en este punto, lo primero que hay que hacer, es actualizar los repositorios y los programas de la distribución con el siguiente comando

sudo apt update && sudo apt upgrade
Enter fullscreen mode Exit fullscreen mode

Esta acción solicitará la contraseña que asignamos a nuestro usuario.

Solicitud de contraseña para actualizar

Nota: no olvide decir que si (tecla Y) para confirmar que se desea realizar la instalación de las actualizaciones.

Agregando el repositorio oficial de Docker CLI

Cuando ya se termine de hacer las actualizaciones, entonces ejecutaremos el siguiente comando para realizar unas instalaciones necesarias previas a Docker CLI.

sudo apt -y install apt-transport-https ca-certificates curl gnupg lsb-release
Enter fullscreen mode Exit fullscreen mode

Después ejecutaremos el siguiente comando para agregar la firma necesaria para el repositorio de Docker CLI.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Enter fullscreen mode Exit fullscreen mode

Llegó el momento de agregar el repositorio en Ubuntu de Docker CLI para su posterior instalación con el siguiente comando.

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Enter fullscreen mode Exit fullscreen mode

Instalando Docker CLI

Como ahora tenemos el repositorio de Docker CLI listo, es momento de hacer la instalación requerida con el siguiente comando

sudo apt update && sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker docker-compose
Enter fullscreen mode Exit fullscreen mode

En este punto ya tenemos Docker CLI instalado en nuestro WSL, vamos a probarlo con los siguientes comandos.

docker --version
docker-compose --version
Enter fullscreen mode Exit fullscreen mode

Deberíamos tener una respuesta similar a la de la siguiente imagen.

Comprobación de los comandos docker y docker-compose

Cómo hacer que Docker ejecute con el usuario normal

Ahora vamos a crear el grupo docker y agregamos nuestro usuario a dicho grupo para que nuestro usuario pueda ejecutar los contenedores sin necesidad de ejecutar los comandos como un root.

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Enter fullscreen mode Exit fullscreen mode

Nota: cuando se intente crear el grupo docker, probablemente salga un mensaje que diga que el grupo ya existe, sí es así, no te preocupes, sigue adelante.

Ahora lo que necesitamos hacer es iniciar Docker y comprobar su correcto funcionamiento y para ello usaremos los siguientes comandos.

sudo service docker start
sudo service docker status
docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Cuando se corre el comando sudo service docker status se obtiene algo como la siguiente imagen.

sudo service docker status

Para salir de esa parte, presionas la tecla Q

Cuando se usa el comando docker run hello-world probablemente puedes recibir un mensaje como el de la siguiente imagen.

Error al correr el hola mundo de Docker

No olvides correr el siguiente comando y vuelves a correr el hola mundo de Docker.

newgrp docker
Enter fullscreen mode Exit fullscreen mode

Ahora si todo ha salido bien, deberías obtener una imagen como la siguiente al correr el hola mundo de Docker.

Hola Mundo de Docker

Con todo lo que hemos realizado anteriormente, es momento de hacer que esto funciones de forma "nativa" en Windows a través de la PowerShell.

Docker bajo la consola de PowerShell

Ahora que Docker está instalado, es momento de hacerlo funcionar en la consola de la PowerShell. En estos momentos Docker funciona muy bien pero en la consola de nuestro WSL.

Al abrir una consola de PowerShell podemos usar los siguientes comandos.

wsl docker --version
wsl docker-compose --version
Enter fullscreen mode Exit fullscreen mode

Ejecución de comandos docker en la PowerShell

La idea es que podamos usar los comandos pero sin el prefijo wsl. Para hacer esto, el archivo Microsoft.PowerShell_profile.ps1 pero para saber dónde lo creamos, deberíamos ejecutar el siguiente comando en una consola de PowerShell

echo $PROFILE
Enter fullscreen mode Exit fullscreen mode

Ejecucuón del comando echo $PROFILE

Como podrás observar en la imagen anterior, esta muestra una ruta y si verificas dicha ruta, probablemente no existirá, pues bien, debemos crear dichas carpetas y el archivo como tal. Una vez lo hayas realizado, deberías poner el siguiente texto en el archivo.

Function Start-WslDocker {
    wsl docker $args
}

Function Start-WslDockerCompose {
    wsl docker-compose $args
}

Set-Alias -Name docker -Value Start-WslDocker

Set-Alias -Name docker-compose -Value Start-WslDockerCompose
Enter fullscreen mode Exit fullscreen mode

Con lo anterior, no olvide cerrar las consolas de PowerShell y volverlas a abrir para que tomen los cambios. Y con lo anterior deberíamos poder ejecutar los siguientes comandos de Docker con total normalidad en la consola PowerShell.

docker --version
docker ps
docker-compose --version
Enter fullscreen mode Exit fullscreen mode

Comando de Docker en la PowerShell

Gestores visuales

Sí de alguna forma no le gusta gestionar Docker desde consola, sino que añora un gestor visual al mejor estilo Docker Desktop, entonces le tengo dos soluciones muy poderosas y gratuitas tanto a nivel personal como a nivel empresarial.

Portainer CE

Portainer CE (Comunity Edition) es una plataforma web ligera de entrega de servicios para aplicaciones contenerizadas que facilita la gestión de Docker, Swarm, Kubernetes y entornos ACI. Este es un proyecto de código abierto y cuenta con el apoyo de la comunidad, ofreciendo una opción gratuita tanto para empresas como para uso personal.

Lazydocker

Lazydocker es una interfaz de usuario en terminal simple tanto para docker como para docker-compose, escrita en Go con la biblioteca gocui. Su objetivo es simplificar la gestión de Docker, haciendo que sea más accesible y menos tedioso para aquellos que prefieren trabajar desde la terminal. Proporciona una visión general clara de los contenedores, imágenes y volúmenes de Docker, permitiendo a los usuarios realizar acciones comunes con solo presionar una tecla o hacer clic, lo que lo convierte en una herramienta eficiente tanto para uso personal como empresarial. Al ser un proyecto de código abierto, Lazydocker es una opción gratuita que facilita la gestión de Docker sin complicaciones, haciéndolo ideal para uso personal y empresarial.

Conclusiones finales

Como pueden ver, Docker CLI si puede ser gestionado en Windows sin la necesidad de depender de Docker Desktop y de forma fácil y sencilla a través de la consola.

Referencias

Top comments (0)