Ir al contenido
Brayan Diaz C
Volver

Cómo instalar y configurar Docker en Ubuntu y WSL

Nueva etapa de la serie: infraestructura. Y empezamos por la herramienta que cambió cómo desarrollamos: Docker. En este artículo vas a aprender exactamente cómo instalar Docker Engine en Ubuntu o WSL desde el repositorio oficial, con Docker Compose incluido y tu usuario configurado para trabajar sin sudo.

Docker resuelve el problema que esta serie lleva semanas atacando por partes: “en mi máquina funciona”. Bases de datos, servicios y entornos completos definidos en un archivo, idénticos en tu máquina y en la de cualquiera. En mis proyectos es la pieza que evita instalar servicios que solo un proyecto necesita.

El problema con Docker en Ubuntu es elegir mal la fuente: el paquete docker.io de los repos de Ubuntu va retrasado, y los tutoriales viejos instalan piezas sueltas que luego pelean entre sí. El camino correcto es el repositorio oficial de Docker, y es el que sigue esta guía.

Vamos a ver:

  1. Preparar el repositorio oficial de Docker.
  2. Instalar Docker Engine con Compose incluido.
  3. Configurar tu usuario para trabajar sin sudo.
  4. Verificar todo con un contenedor real.

Al final tendrás Docker funcionando y listo para levantar lo que tus proyectos pidan.

Nota

¿Ya usas Docker Desktop en Windows con integración WSL? Entonces ya tienes Docker dentro de tu distro y no necesitas esta instalación. Esta guía instala Docker Engine nativo en WSL: mi preferencia por ser más ligero y sin condiciones de licencia.

Tabla de contenidos

Tabla de contenidos

Paso 1: Limpia instalaciones anteriores

Si alguna vez instalaste Docker por otro camino, retira las piezas viejas para que no interfieran:

sudo apt remove -y docker docker-engine docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc

Si no tenías nada, el comando no hace daño: sigue.

Paso 2: Añade el repositorio oficial de Docker

Instala las dependencias y registra la clave GPG oficial:

sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Y configura el repositorio:

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

Paso 3: Instala Docker Engine (con Compose incluido)

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Fíjate en el último paquete: Docker Compose ya viene como plugin. Nada de instalarlo aparte como en los tutoriales viejos; hoy es el subcomando docker compose.

Verifica ambos:

docker --version
docker compose version

Paso 4: Trabaja sin sudo

Docker corre como servicio del sistema, y por defecto solo root puede hablarle. Agrégate al grupo docker:

sudo usermod -aG docker $USER
Importante

El cambio de grupo no aplica a las sesiones abiertas. Cierra sesión y vuelve a entrar; en WSL, lo más rápido es wsl --shutdown desde PowerShell y abrir la distro de nuevo.

Paso 5: Verifica con un contenedor real

La prueba de fuego de toda instalación de Docker:

docker run hello-world

Si ves el mensaje “Hello from Docker!”, todo el flujo funciona: el CLI habló con el daemon, descargó una imagen y ejecutó un contenedor.

Y el primer uso real, el que harás el día dos: levantar un servicio para un proyecto. Por ejemplo, un PostgreSQL descartable sin instalar nada (en el puerto 5433, para no chocar con el nativo que instalamos la semana pasada):

docker run --name pg-prueba -e POSTGRES_PASSWORD=secreto -p 5433:5432 -d postgres:18
docker ps
docker stop pg-prueba && docker rm pg-prueba

Solución de problemas comunes

permission denied while trying to connect to the Docker daemon

Es el Paso 4 pendiente: falta el grupo o falta reiniciar la sesión.

Cannot connect to the Docker daemon

El servicio no está corriendo:

sudo systemctl enable docker
sudo systemctl start docker

En WSL moderno funciona tal cual (systemd viene habilitado); si tu WSL es antiguo, sudo service docker start o actualiza con wsl --update.

Mantenimiento

Docker se actualiza con el sistema, porque quedó en tus fuentes de apt:

sudo apt update && sudo apt upgrade

Y de vez en cuando, limpia imágenes y contenedores huérfanos:

docker system prune

Conclusión

Docker Engine desde la fuente oficial, Compose incluido, tu usuario sin sudo y un contenedor verificado de punta a punta: la base de infraestructura sobre la que un proyecto entero se levanta con un solo comando.

Si esto te fue útil, el artículo relacionado es el paso lógico: Cómo instalar y configurar PostgreSQL en Ubuntu y WSL, para comparar la instalación nativa con el contenedor descartable que acabamos de levantar.

El jueves publico esta misma configuración para macOS, donde el camino es distinto: Docker Desktop. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.

Recursos adicionales


Comparte este post:

Post siguiente
Cómo instalar y configurar PostgreSQL en macOS