EQVPS

Cómo instalar Docker en un VPS

Instala Docker Engine y el plugin de Compose en Ubuntu de la forma correcta, desde el repositorio oficial de Docker, no desde el paquete anticuado de la distro, y luego ejecuta un contenedor de prueba y configúralo para que arranque con el sistema. Unos pocos comandos hasta tener un host de contenedores funcionando.

Docker empaqueta una app y todo lo que necesita en un contenedor que se ejecuta igual en cualquier sitio: la forma más limpia de autoalojar servicios en un VPS. La única pega en Ubuntu y Debian es que la versión del propio repositorio de la distro suele ser antigua y viene sin el plugin moderno de Compose. Instala en su lugar desde el repositorio oficial de Docker. Aquí está todo el proceso.

1. Configura el repositorio oficial de Docker (Ubuntu)

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

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. Instala Docker Engine y Compose

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

3. Confirma que está en marcha y habilitado al arrancar

sudo systemctl enable --now docker
sudo docker run --rm hello-world

El contenedor hello-world se descarga, imprime un mensaje de éxito y termina: prueba de que el motor funciona.

4. (Opcional) Ejecuta Docker sin sudo

sudo usermod -aG docker $USER
# cierra sesión y vuelve a entrar para que el grupo tenga efecto

Haz esto solo para un usuario de confianza: el acceso al grupo docker equivale en la práctica a root en el servidor.

Un contenedor real y rápido

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# visita http://YOUR.SERVER.IP:8080

--restart unless-stopped es lo que hace que el contenedor vuelva después de un reinicio.

Advertencias honestas

Siguientes pasos

Con Docker instalado puedes autoalojar casi cualquier cosa. Mira autoalojar varios servicios detrás de una sola IP, o builds concretos de Docker como un servidor de escritorio remoto RustDesk y monitorización con Uptime Kuma. Para poner un dominio y HTTPS delante, mira cómo configurar un proxy inverso nginx.

Preguntas frecuentes

¿Debería usar 'apt install docker.io' o el repositorio de Docker?

Para tener una versión actual, usa el repositorio oficial de Docker (los pasos de abajo). El paquete docker.io de la distro es cómodo, pero suele quedarse atrás, y el plugin moderno 'docker compose' viene incluido con los paquetes oficiales. Si solo necesitas un servidor desechable rápido, docker.io también sirve.

¿Cuál es la diferencia entre 'docker compose' y 'docker-compose'?

El antiguo 'docker-compose' era una herramienta Python independiente (con guion). El actual es 'docker compose' (con espacio), un plugin integrado con Docker. Usa el plugin; la herramienta independiente es legado. Instala docker-compose-plugin como se muestra y lo tienes.

¿Cómo ejecuto Docker sin escribir sudo cada vez?

Añade tu usuario al grupo docker: 'sudo usermod -aG docker $USER', luego cierra sesión y vuelve a entrar. Ten en cuenta que esto concede en la práctica acceso a nivel root a través de contenedores, así que hazlo solo para un usuario de confianza en tu propio servidor.

¿Cuánta RAM necesita Docker?

Docker en sí es ligero; lo que importa son los contenedores que ejecutas. Una app pequeña o un par de ellas caben cómodamente en un servidor de 1 GB, mientras que stacks más pesados (bases de datos, varios servicios) necesitan más margen. Dimensiona el VPS según la carga de trabajo, no según Docker.

¿Mis contenedores sobrevivirán a un reinicio?

Solo si se lo indicas. El servicio de Docker queda habilitado al arrancar mediante los pasos de abajo, y los contenedores iniciados con '--restart unless-stopped' (o esa política en Compose) vuelven automáticamente. Sin una política de reinicio, un contenedor se queda caído después de reiniciar.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.