Curso Docker (2): Cómo instalar Docker Engine en Ubuntu paso a paso

Aprende a instalar Docker en Ubuntu 22.04/24.04 desde el repositorio oficial. Configura tu usuario para ejecutar comandos sin sudo y lanza tu primer contenedor.

ℹ️ NOTA

En el Módulo 1 de nuestro curso, sentamos las bases teóricas. Ya entiendes que un contenedor es una taquilla de software eficiente y que Portainer será nuestra sala de control.

Ahora es el momento de construir el motor. En este taller práctico, vamos a instalar Docker Engine en tu servidor Ubuntu. Olvídate de los instaladores automáticos y las tiendas de aplicaciones; vamos a hacerlo como en los proyectos industriales: con una instalación limpia, controlada y optimizada desde el repositorio oficial de Docker.


Preparación: ¿Por qué usar el Repositorio Oficial de Docker?

Para instalar Docker en un servidor de producción, siempre debemos usar el repositorio oficial en lugar de los paquetes que vienen con Ubuntu (docker.io). El repositorio oficial garantiza que recibes la versión más estable, las últimas actualizaciones de seguridad y una instalación sin software innecesario (bloatware) que consuma recursos.

Piensa en ello como reparar una máquina de precisión: puedes usar una pieza genérica o la pieza original del fabricante. La pieza original está diseñada para encajar a la perfección y ofrecer el máximo rendimiento.

💡 TRUCO

Nota de Laboratorio: En el mundo del self-hosting, la estabilidad lo es todo. Hemos comprobado que las instalaciones desde el repositorio oficial de Docker son significativamente más fiables a largo plazo, especialmente en servidores de bajos recursos como un Mini PC o una Raspberry Pi.


Taller Práctico: Instalación del Motor Docker paso a paso

Conéctate a tu servidor Ubuntu por terminal y sigue estos comandos al pie de la letra. Están diseñados para ser copiados y pegados con total seguridad.


Paso 1: Limpieza de versiones antiguas


Para evitar conflictos, nuestro primer paso es asegurarnos de que no hay versiones anteriores o alternativas de Docker instaladas.

sudo apt-get remove docker docker-engine docker.io containerd runc

Paso 2: Añadir la llave de seguridad (GPG) del repositorio


Le diremos a nuestro servidor que confíe en el software descargado desde Docker.

# Actualizamos la lista de paquetes e instalamos herramientas necesarias
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# Añadimos la llave GPG oficial de Docker a nuestro sistema
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

Paso 3: Configurar el repositorio e instalar Docker Engine


Ahora que el sistema confía en Docker, le decimos dónde encontrar el software.

# Añadimos el repositorio a nuestras fuentes de software
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualizamos la lista de nuevo para que reconozca el repositorio de Docker
sudo apt-get update

Y finalmente, el comando de instalación que pondrá en marcha los tres pilares del sistema:

sudo apt-get install docker-ce docker-ce-cli containerd.io

Optimización Post-Instalación: Usar Docker sin sudo

Por defecto, cada comando de Docker requiere que escribas sudo antes. Esto es tedioso y poco práctico para un trasteador. Vamos a configurar nuestro usuario para que pueda hablar directamente con el motor de Docker.

  1. Crea el grupo docker (si no existe ya):

    sudo groupadd docker
  2. Añade tu usuario actual a ese grupo:

    sudo usermod -aG docker $USER
⚠️ ATENCIÓN

¡Paso Crítico! Para que este cambio de permisos surta efecto, debes cerrar tu sesión de terminal y volver a conectarte. Si omites este paso, el siguiente comando (docker run hello-world) fallará con un error de “Permission Denied” y pensarás que algo ha salido mal.


La Prueba de Fuego: Tu primer hello-world

Con la terminal recién abierta, es hora de verificar que el motor ruge correctamente. Ejecuta el siguiente comando:

docker run hello-world

Al lanzarlo, Docker hará lo siguiente por ti:

  1. Buscará localmente una imagen llamada hello-world.
  2. Al no encontrarla, se conectará al Docker Hub en internet y la descargará.
  3. Creará un nuevo contenedor a partir de esa imagen.
  4. Ejecutará el programa que hay dentro (que imprime un mensaje).
  5. Detendrá y limpiará el contenedor para no malgastar recursos.

Salida de la terminal tras ejecutar 'docker run hello-world', confirmando una instalación exitosa de Docker Si ves el mensaje “Hello from Docker!”, ¡misión cumplida! Tu servidor ya es un host de contenedores profesional.


Conclusión y Siguientes Pasos

Has pasado de la teoría a la acción. Has forjado el motor de tu búnker de self-hosting siguiendo las mejores prácticas de la industria. Tu servidor ahora tiene el superpoder de ejecutar cualquier aplicación de forma aislada y eficiente.

Pero una sala de máquinas sin un panel de control es un caos. En el próximo nodo de este curso, desplegaremos la interfaz gráfica que lo controla todo:

👉 Siguiente Módulo: Módulo 3: Desplegando Portainer con Docker Compose

¡Nos vemos en la terminal! 🛠️