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
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
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.
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.
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
Esta acción solicitará la contraseña que asignamos a nuestro usuario.
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
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
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
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
En este punto ya tenemos Docker CLI instalado en nuestro WSL, vamos a probarlo con los siguientes comandos.
docker --version
docker-compose --version
Deberíamos tener una respuesta similar a la de la siguiente imagen.
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
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
Cuando se corre el comando sudo service docker status
se obtiene algo como la siguiente imagen.
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.
No olvides correr el siguiente comando y vuelves a correr el hola mundo de Docker.
newgrp docker
Ahora si todo ha salido bien, deberías obtener una imagen como la siguiente al correr el 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
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
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
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
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 (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 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
- How To Install Docker Without Docker Desktop On Windows
- Using Docker and Kubernetes without Docker Desktop on Windows 11
- How to run docker on Windows without Docker Desktop
- How to install Linux on Windows with WSL
- Install Docker Engine on Ubuntu
- Install Lazydocker on Ubuntu 22.04
- How to Install Portainer 2.0 on your Docker
Top comments (0)