Comparativa independiente · sin rankings de pago
Inicio / Blog / Guía / Docker para alojar una aplicación: comience sin apilar contenedores

Docker para alojar una aplicación: comience sin apilar contenedores

Un Dockerfile limpio y un único contenedor de aplicaciones suelen ser suficientes para implementar. Reserve Docker-compose multiservicio para necesidades reales, no para moda.

Redacción Hébergeurs.eu 5 min Actualizado 19 jul. 2026

Estás leyendo un tutorial: Aplicación de nodo, Redis, PostgreSQL, Nginx, trabajador: cinco contenedores docker-compose copiados y pegados. En un VPS de 8 GB de RAM, la pila se inicia... luego colapsa bajo una carga real porque nadie midió los recursos ni configuró las comprobaciones de estado. Docker no era el problema. El apilamiento prematuro fue.

Docker soluciona un problema específico: “funcionó en mi máquina”. Congela las dependencias y el comando de inicio. Para alojar una aplicación web, comience con un contenedor de aplicaciones bien construido, no una fábrica de gas.

Paso 1: un Dockerfile legible

Comience con una imagen base oficial con una versión congelada (node:20-alpine, php:8.3-fpm). Utilice una compilación de varias etapas: una fase para compilar los activos, una fase de ejecución mínima. Ejecute el proceso final con un usuario que no sea root, agregue un HEALTHCHECK HTTP simple y mantenga un .dockerignore agresivo, sin node_modules local ni repositorio .git integrado.


DESDE el nodo: construcción AS 20-alpine

DIRTRABAJO /aplicación

COPIAR paquete*.json./

EJECUTAR npm ci

COPIAR. .

EJECUTAR npm ejecutar compilación



DESDE nodo:20-alpino

nodo USUARIO

DIRTRABAJO /aplicación

COPIAR --from=build /app/dist ./dist

COPIAR --from=build /app/node_modules ./node_modules

EXPONER 3000

CMD ["nodo", "dist/server.js"]

Un Dockerfile es un contrato de ejecución. Si tiene más de una página, simplifique la solicitud o divida los servicios más adelante.

Paso 2: datos fuera del contenedor

Las cargas no deben vivir en la capa efímera del contenedor: use un volumen o un almacenamiento de objetos. La base de datos SQL no debe ejecutarse sin un volumen con nombre, a menos que prefiera una base de datos administrada por el host. Los registros pueden generarse en salida estándar, pero planifique la agregación externa. Los secretos nunca deben grabarse en la imagen: inyéctelos en tiempo de ejecución, como nos recuerda la guía Secretos de implementación.

En un proyecto pequeño, aplicación Docker, PostgreSQL administrada por el host evita operar una base de datos en el mismo VPS.

Paso 3: docker-compose solo si es necesario

Compose tiene sentido para desarrollo local o un VPS pequeño de un solo inquilino con dos o tres servicios acoplados. En producción, manténgalo si usted mismo administra Redis y la aplicación en la misma máquina, o si necesita una red interna app ↔ redis sin exponer Redis públicamente. De lo contrario, un único servicio de "aplicación" detrás de un proxy inverso (Caddy o Nginx en el host, o un único contenedor de proxy inverso) es suficiente.

Implementar en VPS: patrón simple

Cree la imagen en integración continua, envíela a un registro (GHCR, Scaleway Registry…), luego en el VPS ejecute docker pull y docker run con volúmenes y --restart less-stopped. Termine TLS en un proxy inverso de host que apunte al puerto del contenedor. Centralice los registros a través de docker logs o un agente, y actualícelos volviendo a implementar una imagen etiquetada; nunca :latest sin un pin explícito.

PaaS en contenedores (Clever Cloud, Fly.io, Render) absorbe el registro y la orquestación liviana si prefiere evitar la administración de VPS.

Errores iniciando en producción

Evite :latest sin una versión fija: la implementación deja de ser reproducible. No ejecute el contenedor como root: un escape es más peligroso. Establezca límites de memoria: una eliminación silenciosa de OOM puede resultar sorprendente. No copie un compuesto de desarrollo en producción con puertos expuestos y contraseñas débiles. Por último, no confunda Docker con orquestación: Docker por sí solo no proporciona alta disponibilidad de múltiples nodos: Kubernetes está en una liga diferente.

La cumbre: Docker simplifica la implementación, no la arquitectura

Antes de apilar, pregunte: ¿qué se debe cargar por separado? Si la respuesta es “nada todavía”, un contenedor es suficiente.

Decide y avanza sin puntos ciegos

Escriba un Dockerfile de varias etapas con un usuario no root, externalice la base de datos y los archivos pesados, y reserve Compose para servicios verdaderamente ubicados en el mismo lugar. Conecte la integración continua para crear y enviar la imagen, luego extraiga una versión etiquetada al VPS. Compare los hosts Docker y PaaS a través de la guía directorio y PaaS o servidor para ubicar la complejidad en otra parte si es necesario.

Preguntas frecuentes

¿Docker reemplaza un VPS clásico?

No. Docker encapsula la aplicación; Aún necesitas una máquina anfitriona. Estandariza el entorno de ejecución sin reemplazar la infraestructura.

¿Un contenedor o docker-compose desde el principio?

Un contenedor de aplicaciones con una base de datos administrada suele ser suficiente. Compose resulta útil si Redis o PostgreSQL se ejecutan en la misma máquina que la aplicación.

¿Dónde almacenar datos persistentes?

Volúmenes de Docker o servicios administrados, no solo el sistema de archivos efímero; de lo contrario, los datos se perderán al reiniciar.

¿Docker en compartido?

Rara vez disponible. Docker apunta a VPS, PaaS dedicado o en contenedores.


Atracar para alojar una aplicación no se trata de recolectar contenedores. Es un artefacto implementable y, luego, tantos servicios como su arquitectura realmente requiera.

Compara proveedores europeos

Filtra por cumplimiento, ubicación y caso de uso — luego abre las fichas para verificar el alcance real.

Explorar el directorio
Blog

Lecturas relacionadas

Todos los artículos →
Guía

DNS sin jerga: qué entender antes de tocar una zona

DNS traduce un nombre en una dirección IP, y un error de copiar y pegar puede cortar el sitio, el correo electrónico y los subdominios al mismo tiempo. Unos pocos conceptos son suficientes para no actuar más a ciegas.