Instalación de Docker en Ubuntu y Debian
Esta guía muestra cómo instalar Docker Engine en un VPS con Ubuntu 22.04 o Debian 12 usando el repositorio oficial, que es la forma recomendada para recibir actualizaciones estables.
1. Preparar el sistema
Actualiza los paquetes e instala las dependencias necesarias:
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
2. Agregar la clave GPG y el repositorio
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
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
3. Instalar Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verifica que el servicio esté activo:
sudo systemctl status docker
4. Usar Docker sin sudo
Por defecto solo root puede ejecutar comandos de Docker. Para usar tu usuario normal, agrégalo al grupo docker y cierra sesión para aplicar los cambios:
sudo usermod -aG docker $USER
newgrp docker
Comandos básicos imprescindibles
docker run
Crea y arranca un contenedor a partir de una imagen. Si la imagen no existe localmente, Docker la descarga del registry:
docker run hello-world
docker run -d -p 8080:80 --name web nginx
El flag -d ejecuta en segundo plano, -p mapea puertos del host al contenedor y --name asigna un nombre legible.
Listar contenedores e imágenes
docker ps # contenedores en ejecución
docker ps -a # incluye los detenidos
docker images # imágenes descargadas
Detener, reiniciar y eliminar
docker stop web
docker start web
docker restart web
docker rm web # elimina el contenedor (debe estar detenido)
docker rmi nginx # elimina la imagen
Ver registros y entrar al contenedor
Para revisar la salida de una aplicación dentro del contenedor:
docker logs web
docker logs -f web # modo follow, como tail -f
Para abrir una shell interactiva dentro de un contenedor en ejecución:
docker exec -it web bash
Si la imagen no tiene bash, usa sh. El flag -it combina modo interactivo con terminal asignada.
Limpieza de recursos
Con el tiempo se acumulan imágenes, contenedores detenidos y redes huérfanas. Limpia todo lo que no esté en uso con:
docker system prune -a
Ten cuidado: este comando borra imágenes no usadas por ningún contenedor activo. Revisa bien antes de confirmar.
Siguientes pasos
Con estos comandos ya puedes levantar servicios comunes como Nginx, Redis, MariaDB o aplicaciones de prueba. En el siguiente artículo aprenderás a construir tus propias imágenes con un Dockerfile.