Docker y Docker Compose en un VPS: guía para empezar

Docker cambió la forma de publicar aplicaciones. En vez de instalar a mano cada lenguaje, librería y base de datos en el servidor, empaquetas todo en contenedores que funcionan igual en tu computador y en producción. Si tienes un VPS, Docker es una de las mejores formas de aprovecharlo. En esta guía te explicamos lo esencial para empezar.
Qué es un contenedor
Un contenedor es un paquete que incluye tu aplicación y todo lo que necesita para funcionar: el lenguaje, las librerías y la configuración. Los contenedores comparten el sistema operativo del servidor, por eso son livianos y arrancan en segundos. Cada uno queda aislado de los demás, así que puedes tener varios proyectos en el mismo VPS sin que choquen sus versiones.
Docker Engine y Docker Compose
- Docker Engine es el motor que ejecuta los contenedores.
- Docker Compose permite describir en un archivo
docker-compose.ymltodos los servicios de tu proyecto (por ejemplo, la aplicación, la base de datos y Redis) y levantarlos juntos con un solo comando.
1. Instala Docker en tu VPS
Usa siempre la instalación oficial de Docker para tu sistema (Ubuntu, Debian o AlmaLinux), que incluye Docker Engine y el complemento de Compose. Evita paquetes antiguos de repositorios no oficiales. Al terminar, comprueba que funciona con:
docker --version
docker compose version
2. Describe tu proyecto con Compose
Un archivo docker-compose.yml básico para una aplicación con base de datos se ve así:
services:
app:
build: .
restart: always
env_file: .env
ports:
- "127.0.0.1:3000:3000"
depends_on:
- db
db:
image: postgres:16
restart: always
env_file: .env
volumes:
- datos-db:/var/lib/postgresql/data
volumes:
datos-db:
Fíjate en tres detalles importantes:
restart: alwayshace que los servicios vuelvan a funcionar solos si el servidor se reinicia.- La aplicación se publica en
127.0.0.1, no al mundo: el acceso público lo hará Nginx con HTTPS. - La base de datos no expone puertos y guarda sus datos en un volumen, para no perderlos al recrear el contenedor.
3. Levanta los servicios
docker compose up -d
docker compose ps
docker compose logs -f app
El primer comando construye y arranca todo en segundo plano; el segundo muestra el estado y el tercero los registros de la aplicación en tiempo real.
4. Actualiza sin complicaciones
Cuando tengas una nueva versión de tu código, basta con traer los cambios y reconstruir:
git pull
docker compose up -d --build
Buenas prácticas
- Claves fuera del código: usa un archivo
.enven el servidor y no lo subas a Git. - Versiones fijas: indica la versión de cada imagen (por ejemplo
postgres:16) en vez delatest. - Respalda los volúmenes: ahí viven tus datos. Programa respaldos de la base de datos.
- Limpia de vez en cuando: las imágenes antiguas ocupan disco;
docker system pruneayuda, pero revisa qué borra antes de confirmarlo. - Vigila los recursos:
docker statsmuestra cuánta memoria y CPU usa cada contenedor.
Qué tamaño de VPS necesitas
Docker en sí consume poco. Lo que importa es lo que corres dentro: una aplicación sencilla con su base de datos funciona bien con 2 a 4 GB de RAM; si sumas varios servicios, colas o búsqueda, conviene 8 GB o más.
Conclusión
Con Docker y Docker Compose, publicar y actualizar tus aplicaciones se vuelve repetible y ordenado. Un VPS te da el control para usarlos sin restricciones.
En Megacloud tienes servidores VPS en Chile con acceso root, discos SSD y la distribución que prefieras para instalar Docker desde el primer día.