Instalar Docker (sin venderle tu alma al Desktop)
Publicado el 26 de marzo de 2026 • 10 minutos • 2071 palabras
Table of contents
- Contexto: Docker Desktop está bien… pero no es gratis ni ligero
- Docker CE en WSL2: usar Docker “de verdad” en tu Linux dentro de Windows
- Docker en macOS con Colima: Linux minimalista sin Desktop
- “Echo de menos las ventanitas”: Portainer (u otro panel web)
- Apunte importante sobre puertos y fronteras Windows-WSL2
- ¿Y si al final quiero Docker Desktop igualmente?
- Glosario rápido
- Fuentes y referencias
Hay un momento en toda carrera técnica en el que alguien te dice: “instala Docker Desktop, siguiente paso”. Tú obedeces, reinicias, aceptas tres EULAs sin leer, y al cabo de un rato tu portátil suena como un reactor y Docker Desktop decide ocupar más RAM que tu IDE, las pestañas abiertass en tu Chrome y todos tus traumas juntos.
Luego vuelves a la letra pequeña y descubres que, si tu empresa pasa cierto tamaño, Docker Desktop ni siquiera es gratis: toca licencia empresarial . Muy legítimo aunque no siempre viable, y ahí empieza la búsqueda de “quiero Docker, pero no quiero otra cosa gigantesca funcionando todo el día en segundo plano”.
La buena noticia: en 2026 no estás obligado a casarte con Docker Desktop para desarrollar en serio.
En Windows puedes usar Docker CE dentro de WSL2, y en macOS puedes tener un entorno Docker decente usando Colima (que se apoya en Lima y QEMU, sin necesidad de la app oficial). Y si echas de menos una interfaz gráfica para ver y tocar contenedores, puedes levantarte un Portainer y gestionarlo vía navegador como si fueras el SRE de un datacenter… pero sin pagar otra licencia.
¿A que suena bastante bien?
Contexto: Docker Desktop está bien… pero no es gratis ni ligero
Docker no funciona en nativo ni en Windows ni en Mac. Necesita un Linux: Docker Desktop te empaqueta una máquina virtual Linux, el demonio Docker, una interfaz bonita, integración con el sistema y varias cosillas más. Todo cómodo, todo en una sola app.
Pero lo cómodo tiene su precio:
- Licencia: empresas medianas y grandes necesitan suscripción de pago para usarlo legalmente.
- Recursos: esa máquina virtual vive siempre por ahí, consume RAM, CPU, y a veces se cuelga con alegría.
Por eso hay tanta literatura de buenas prácticas con Docker Desktop + WSL2 donde el propio Docker te suplica que limites recursos, que uses WSL, que no pongas los proyectos en las carpetas lentas… Y por eso también han florecido alternativas “más a pelo”: usar Docker CE directamente en Linux (en nuestro caso, WSL2) o en una máquina virtual ligera tipo Colima en Mac.
La idea fundamental es sencilla:
- En Windows, dejas que WSL2 sea tu Linux y ahí instalas Docker como lo harías en cualquier server.
- En Mac, dejas que Colima/Lima gestionen una máquina virtual Linux minimalista y también instalas Docker CE ahí.
Docker Desktop pasa a ser una opción, no un requisito.
Docker CE en WSL2: usar Docker “de verdad” en tu Linux dentro de Windows
Si ya tienes WSL2 instalado (por ejemplo con Ubuntu, como vimos en el tutorial anterior), lo que vas a hacer es tratarlo como si fuera un servidor Ubuntu normal : ahí va Docker CE.
Instalar Docker CE dentro de la distro WSL2
Abre tu Ubuntu en WSL2 y sigue, a grandes rasgos, la receta oficial de Docker para Ubuntu (adaptada a cómo está hoy la doc):
- Actualiza paquetes:
sudo apt update && sudo apt upgrade
- Instala dependencias para usar repositorios HTTPS:
sudo apt install ca-certificates curl gnupg lsb-release
- Añade la clave GPG de Docker y el repo (ejemplo típico):
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Instala Docker CE y amigos:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
- Añade tu usuario al grupo
dockerpara no tener que usarsudotodo el rato:
sudo usermod -aG docker $USER
Cierra y vuelve a abrir la sesión de WSL, o haz un wsl --shutdown desde Windows y reabre Ubuntu para que el grupo se aplique.
Comprueba:
docker version
docker run hello-world
Si eso funciona, tienes Docker funcionando dentro de tu Linux en WSL2, sin Docker Desktop en medio. Es, en la práctica, lo mismo que tendrías en un servidor en la nube o en tu casa.
Arrancar Docker automáticamente y convivir con Windows
Por defecto, el servicio de Docker dentro de WSL suele no arrancar solo.
Para que no tengas que hacer sudo service docker start a mano cada vez, puedes usar el fichero /etc/wsl.conf
que comentábamos en el anterior tutorial:
sudo nano /etc/wsl.conf
Y añadir:
[boot]
command = service docker start
Apagas WSL:
wsl --shutdown
y la próxima vez que abras tu Ubuntu, el servicio de Docker se pondrá en marcha solo.
En cuanto a puertos, piensa así:
- Si levantas un contenedor en WSL2 y haces
docker run -p 8080:80 ..., desde dentro de WSL accedes conhttp://localhost:8080. - Desde Windows, como WSL2 está integrado en la red de host, también sueles poder acceder a
http://localhost:8080directamente, gracias al port forwarding automático que hace WSL2.
En entornos más raros (firewalls agresivos, puertos exóticos), puede que tengas que jugar con reglas de firewall o comprobar la IP interna de WSL (ip addr) y conectar a http://<ip-wsl>:8080, pero para la mayoría de usos de “desarrollo local” el localhost compartido funciona decentemente.
Docker en macOS con Colima: Linux minimalista sin Desktop
En macOS el problema es parecido a Windows: Docker Desktop te lo da todo en uno, pero con licencias y consumo excesivo de recursos.
La alternativa es usar Colima, que monta una máquina virtual Linux ligera usando Lima (y QEMU bajo el capó), y sobre esa máquina virtual instalas/ejecutas Docker o containerd.
El procedimiento actual es algo así:
- Instala Homebrew si no lo tienes (no te voy a repetir el comando, pero ya sabes:
/bin/bash -c "...brew..."). - Instala Colima y Docker CLI:
brew install colima docker
- Arranca Colima:
colima start
Colima crea y arranca una máquina virtual Linux minimalista con soporte para contenedores. En muchas configuraciones, ya te deja listo un entorno Docker “como si fuera nativo”: el docker CLI que instalaste con Homebrew hablará con el demonio de la máquina virtual de Colima.
Comprueba:
docker version
docker run hello-world
Si funciona, tienes Docker operativo… sin Docker Desktop. Si quieres más control, Colima acepta perfiles (CPU, RAM, etc.) en su config, pero eso ya es ajuste fino.
¿Y los puertos?
Colima, igual que Docker Desktop, hace port forwarding desde la máquina virtual al host. Un docker run -p 8080:80 ... te da un servicio accesible en tu Mac en http://localhost:8080 sin tocar nada extra. Para el uso típico de desarrollo web y APIs, te vale de sobra.
“Echo de menos las ventanitas”: Portainer (u otro panel web)
Una de las cosas que mucha (o alguna) gente valora de Docker Desktop es el panel visual: ver contenedores, imágenes, redes, logs, todo con clicks. Sin la app oficial, te quedas “solo” con CLI… a no ser que montes un panel web tú mismo.
Ahí entra Portainer, que lleva años siendo el “panel de control de Docker” de facto: una aplicación web ligera que se despliega como contenedor y te permite gestionar Docker (y hasta clusters) desde el navegador.
Lo normal, tanto en WSL2 como en Colima, es levantar un container para disponer de un panel de control:
docker volume create portainer_data
docker run -d \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Luego vas a https://localhost:9443 (en Windows: navegador del host; en Mac: igual) y sigues el asistente de configuración.
Portainer se engancha al socket de Docker del host (el de WSL o el de Colima) y te da una lista de contenedores, logs, estadísticas, gestión de imágenes, redes, volúmenes y un mínimo de RBAC y autenticación si lo necesitas.
No es tan “nativo” como el panel de Docker Desktop, pero tiene una ventaja importante: tú decides dónde se ejecuta y no añade otra capa pesada al sistema. Si un día no quieres panel gráfico, paras el contenedor y listo.
Apunte importante sobre puertos y fronteras Windows-WSL2
Te lo adelantaba antes, pero merece un subapartado: en WSL2 hay varias redes implicadas. Normalmente:
- WSL2 crea una especie de máquina virtual con una IP interna (algo tipo
172.x.y.z). - Windows hace de host y suele mapear puertos automáticamente para que
localhosten Windows llegue a servicios escuchando en0.0.0.0dentro de WSL2.
En la práctica, para desarrollo local, suele bastar con:
- En WSL2:
docker run -p 8000:8000 miimageny tu servicio en0.0.0.0:8000. - En Windows:
http://localhost:8000en el navegador.
Si algo no funciona, comprueba lo siguiente:
- Comprueba que el contenedor esté escuchando en
0.0.0.0, no solo en127.0.0.1. - Mira la IP de tu WSL con
ip addry pruebahttp://esa-ip:8000. - Revisa que ningún firewall esté bloqueando tráfico entre host y la interfaz de WSL.
Para cosas más avanzadas (exponer servicios de WSL hacia redes externas, montar reverse proxies en Windows que apunten a WSL, etc.) ya entrarías en territorio Nginx/Traefik/iptables, pero para el ciclo “navegador <-> API local”, WSL2 se porta razonablemente bien de serie.
¿Y si al final quiero Docker Desktop igualmente?
Todo esto no es un manifiesto “anti-Docker Desktop”. La propia empresa sigue recomendando su app para quienes necesitan integración muy pulida con el sistema, Kubernetes integrado, updates fáciles, etc. Es una solución sólida y, bien configurada, útil.
Lo que quiero que te lleves de este tutorial es, sobre todo, que tienes alternativas. Que si el modelo de licencias de Docker Desktop no encaja con tu empresa, no estás atrapado. Que si la app te come recursos o se cuelga más de lo que te gustaría, puedes dejar que WSL2 o Colima hagan el trabajo pesado sin esa capa extra. Y que si echas de menos un panel bonito donde hacer click en cosas, Portainer está a un docker run de distancia y corre sobre tu propio Docker, sin pedirte otra suscripción.
Al final puedes tener un entorno Docker completo, moderno y bastante ligero tanto en Windows como en macOS sin venderle tu alma a una sola aplicación de escritorio.
Y si un día te apetece volver a Docker Desktop, siempre estás a una instalación de distancia; lo importante es que la decisión sea tuya, no algo que asumes “porque todo el mundo lo hace así”.
Glosario rápido
Por si acaso tu jefe te pregunta qué acabas de instalar y necesitas sonar convincente.
- Docker CE (Community Edition): la versión gratuita y de código abierto del motor Docker. Es el demonio que realmente ejecuta los contenedores, sin la interfaz gráfica ni las integraciones de Docker Desktop.
- WSL2 (Windows Subsystem for Linux 2): una capa de compatibilidad de Microsoft que permite ejecutar un kernel Linux real dentro de Windows, con rendimiento casi nativo.
- Colima: herramienta de código abierto para macOS que levanta una máquina virtual Linux ligera (basada en Lima) donde puedes ejecutar Docker sin necesitar Docker Desktop.
- Lima / QEMU: Lima gestiona máquinas virtuales Linux en macOS; QEMU es el emulador/virtualizador que usa por debajo para crear esas máquinas virtuales.
- containerd: el runtime de contenedores de bajo nivel que Docker usa internamente para gestionar el ciclo de vida de los contenedores (crear, ejecutar, parar, eliminar).
- EULA (End User License Agreement): el contrato de licencia de usuario final que aceptas (sin leer) al instalar software.
- Portainer: aplicación web que se despliega como contenedor y ofrece un panel gráfico para gestionar Docker, sus imágenes, redes y volúmenes desde el navegador.
- Port forwarding: redirección de puertos; el mecanismo que permite que un servicio escuchando en un puerto dentro de una máquina virtual o contenedor sea accesible desde el sistema anfitrión.
- RBAC (Role-Based Access Control): control de acceso basado en roles; un modelo de permisos donde se asignan capacidades a roles y los usuarios heredan esos permisos según su rol.
- Socket de Docker (
/var/run/docker.sock): fichero especial de Unix que actúa como canal de comunicación con el demonio Docker. Herramientas como Portainer se enganchan a él para enviar órdenes al motor de contenedores sin necesidad de abrir puertos de red.
Fuentes y referencias
Documentación oficial, posts del blog de Docker y algún que otro recurso de WSL. Sin vídeos de YouTube cutres, lo prometo.
- Docker Desktop WSL 2 Best Practices - Docker Docs. Buenas prácticas oficiales para Docker Desktop con WSL2, incluyendo información sobre licencias.
- Docker Desktop WSL 2 Best Practices (Blog) - Docker Blog. Artículo sobre optimización de Docker Desktop con WSL2.
- Unleashing Linux on Windows: A Developer’s Guide to WSL2 - Van Falchi. Guía para desarrolladores sobre flujos de trabajo con WSL2.
- Documentación oficial de Microsoft: instalar WSL - Microsoft Learn. Guía oficial de instalación de WSL.
- Setting Up WSL on Windows 11 - OreateAI Blog. Guía detallada de configuración WSL en Windows 11.
- Instalación manual de WSL - Microsoft Learn. Pasos manuales y configuración avanzada de WSL.
