Top.Mail.Ru
Español
Docker · 14 minutos

Cómo elegir un VPS para Docker sin perder los datos

Docker facilita una entrega reproducible, pero un contenedor no convierte los datos en persistentes ni protege el host. El VPS debe ofrecer virtualización compatible, memoria para todos los servicios, disco controlado y una estrategia explícita para volumes, bases y actualizaciones.

Esquema de un VPS con Docker, proxy, contenedores, volumes persistentes y copias externas
En este artículoVirtualizaciónRecursosDiscoDespliegueDatosSeguridadErroresFAQ

Qué virtualización admite Docker

KVM es la opción más predecible: ofrece núcleo propio, cgroups, namespaces y libertad para actualizar Docker. En contenedores de sistema como OpenVZ algunas funciones, módulos o límites pueden estar restringidos. Confirma expresamente que el proveedor permite Docker, overlay networking y las reglas de firewall necesarias.

Cuántos recursos necesitan los contenedores

ConjuntoInicio razonableRiesgo principal
Proxy y una app1–2 vCPU, 2 GB RAMPicos durante el despliegue
App, PostgreSQL y Redis2 vCPU, 4 GB RAMCompetencia por RAM
Varios proyectos4+ vCPU, 8+ GB RAMFalta de límites por servicio

Suma el RSS real de los procesos, la base, la caché y el sistema. Deja margen para arrancar una versión nueva junto a la anterior. Define límites y reservas por contenedor; sin ellos, una fuga de memoria puede derribar todo el host.

Por qué Docker llena el disco

Imágenes antiguas, capas de compilación, logs JSON, volumes huérfanos y caché crecen sin aparecer en el tamaño del código. Separa los datos importantes de lo recreable, configura rotación de logs y revisa periódicamente el uso de Docker. No ejecutes una limpieza automática agresiva sin saber qué volumes siguen siendo necesarios.

Esquema práctico de despliegue

Usa imágenes versionadas construidas en CI, no en producción. Docker Compose describe redes, volumes, healthchecks y variables; un proxy publica solo 80/443. Descarga la nueva imagen, inicia servicios dependientes, ejecuta migraciones compatibles, comprueba health y cambia el tráfico. Conserva la versión anterior para volver atrás.

Evita latest: no identifica el código ejecutado. Fija versión o digest y actualiza conscientemente. Kubernetes en un solo VPS añade complejidad sin eliminar la única máquina; Compose suele ser suficiente.

Actualizaciones sin sorpresas

Actualiza primero en un entorno de prueba y separa el cambio de imagen de una migración destructiva de base. Un healthcheck debe validar que la aplicación puede atender tráfico, no solo que el proceso existe. Conserva el digest anterior, automatiza el rollback y elimina imágenes antiguas únicamente después de cerrar la ventana de observación.

Copias de volumes y bases de datos

Copiar un volume de una base mientras escribe puede producir un estado incoherente. Usa pg_dump, mysqldump u otra herramienta oficial, y guarda el resultado junto con archivos persistentes en un almacenamiento externo cifrado. Prueba la restauración en una red aislada. Un volumen no es una copia, y una imagen tampoco contiene los datos creados en ejecución.

Documenta qué servicio es dueño de cada volume, su ruta y orden de recuperación. Si el despliegue crea automáticamente un volume vacío con el mismo nombre esperado, puede parecer correcto mientras la aplicación arranca sin los datos históricos. La prueba debe comprobar registros reales, no solo que el contenedor esté en estado healthy.

Red y seguridad del host

No publiques PostgreSQL, Redis ni el socket de Docker. Quien controla /var/run/docker.sock suele poder controlar el host. Ejecuta procesos sin root cuando sea posible, elimina capabilities innecesarias, no incrustes secretos en la imagen y actualiza el sistema y las bases de imagen. Más detalles en seguridad de VPS.

Errores frecuentes

Preguntas frecuentes

¿Basta 1 GB de RAM?

Para una sola app pequeña quizá; Docker, proxy y sistema dejan poco margen. 2 GB es un inicio más práctico.

¿Docker necesita IPv4 propio?

El host suele necesitar una dirección; los contenedores comparten redes internas.

¿Kubernetes en un VPS?

Normalmente no: no añade alta disponibilidad y aumenta el mantenimiento.

¿PostgreSQL puede vivir en Docker?

Sí, con volume persistente, límites, copia consistente y restauración probada.

¿Cuándo ampliar?

Cuando CPU, RAM, I/O o disco se acercan al límite de forma sostenida, no por un pico aislado.

Busca un VPS preparado para DockerCompara KVM, RAM, NVMe y tráfico.
Comparar VPS

También: Node.js y Python en VPS y copias verificables.