+56 2 2914 4261 Correo de soporte

Blog

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

Terminal con Docker Compose levantando servicios en un VPS

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.yml todos 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: always hace 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 .env en el servidor y no lo subas a Git.
  • Versiones fijas: indica la versión de cada imagen (por ejemplo postgres:16) en vez de latest.
  • 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 prune ayuda, pero revisa qué borra antes de confirmarlo.
  • Vigila los recursos: docker stats muestra 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.