¿Qué es Docker? Planes de VPS para ejecutar cargas de trabajo en contenedores

¿Qué es Docker? Planes de VPS para ejecutar cargas de trabajo en contenedores - Imagen principal

Docker es una plataforma de código abierto que agrupa aplicaciones y sus dependencias en unidades aisladas llamadas contenedores. Para ejecutar Docker en InMotion Hosting, necesitas un VPS autogestionado con acceso de root o un servidor dedicado, ya que ambos te ofrecen control a nivel del kernel.

WordPress compartidos, para revendedores yWordPress cPanel no son compatibles con el daemon de Docker. En este artículo se explica cómo funcionan los contenedores, qué configuraciones de VPS de InMotion son las adecuadas y cómo dimensionar tu entorno para que funcione de verdad.

¿Qué es Docker en pocas palabras?

Docker empaqueta una aplicación con todo lo que necesita para ejecutarse, incluyendo el entorno de ejecución, las bibliotecas, las herramientas del sistema y los archivos de configuración. El resultado es un contenedor que se comporta igual tanto en el portátil de un desarrollador como en un servidor VPS de pruebas y en un servidor de producción.

Los contenedores no son máquinas virtuales. Una máquina virtual emula un sistema operativo completo sobre un hipervisor. Un contenedor comparte el núcleo del host y aísla únicamente el espacio de usuario mediante primitivas de Linux como los espacios de nombres y los cgroups. Según la documentación oficial de Docker, este diseño te permite ejecutar muchos contenedores en un solo host con una sobrecarga mucho menor que si ejecutaras el mismo número de máquinas virtuales.

Los elementos fundamentales del ecosistema son sencillos:

  • Docker Engine: el demonio que crea y ejecuta contenedores
  • Imágenes: plantillas de solo lectura que contienen tu aplicación y sus dependencias
  • Contenedores: instancias en ejecución de una imagen
  • Docker Compose: una herramienta para definir aplicaciones con varios contenedores en un único archivo YAML
  • Registros: almacenamiento de imágenes, siendo Docker Hub el predeterminado público

¿En qué se diferencia Docker del alojamiento web tradicional?

El alojamiento tradicional instala el software directamente en el sistema de archivos del servidor. PHP, MySQL y Apache se encuentran en /etc y /usr, y comparten bibliotecas con el resto de programas del servidor. Actualizar una aplicación puede provocar fallos en otra. Esta es una de las razones por las que los planes de alojamiento compartido limitan lo que los usuarios pueden instalar.

Docker da un giro a ese modelo. Cada contenedor trae sus propias bibliotecas y su propio entorno de ejecución. Una aplicación de Node 18 y otra de Node 22 pueden ejecutarse al mismo tiempo sin entrar en conflicto, ya que cada una lleva su propia versión dentro de la imagen. También puedes desmontar un contenedor en segundos y sustituirlo por una imagen que sabes que funciona bien, lo cual es mucho más limpio que reinstalar paquetes en un servidor en producción.

Esa es precisamente la clave: el aislamiento. Los contenedores te ofrecen una unidad de implementación reproducible. La misma imagen que has probado localmente es la que se ejecuta en producción.

¿Por qué usar contenedores en lugar de instalar el software directamente?

Algunas razones prácticas que surgen en proyectos reales:

  • Fijación de versiones que realmente funciona: las imágenes de contenedor fijan las versiones exactas de PHP, Node, Python, Postgres o cualquier otro componente del que dependa tu pila. Se acabaron las actualizaciones accidentales de paquetes que estropean una web en funcionamiento.
  • Incorporación más rápida: cuando un desarrollador se une a tu equipo, puede ejecutar «docker compose up» y tener todo el entorno en marcha en cuestión de minutos, en lugar de pasarse medio día buscando dependencias.
  • Revertidos más sencillos: si una implementación sale mal, puedes volver a la etiqueta de imagen anterior. No hace falta desinstalar ni reinstalar paquetes en el servidor.
  • Servidores de alojamiento más limpios: tu VPS se mantiene al mínimo. El servidor de alojamiento ejecuta Docker, un cortafuegos y SSH. Todo lo demás se ejecuta dentro de contenedores.

Esa previsibilidad es la razón por la que las agencias y los equipos de SaaS han trasladado muchas de sus herramientas internas, entornos de prueba y microservicios a contenedores.

¿Qué planes VPS de InMotion son compatibles con Docker?

La respuesta corta es: cualquier plan que te dé acceso de root en una distribución de Linux compatible. En la oferta de InMotion, eso significa el VPS autogestionado, que se aprovisiona en AlmaLinux, Ubuntu LTS o Debian. Las tres son opciones de primera para Docker Engine y Docker Compose.

Aquí tienes una comparación de los principales tipos de planes para cargas de trabajo en contenedores:

Tipo de planAcceso Raíz¿Compatible con Docker?Notas
Alojamiento compartidoNoNoNo hay control de demonios, el kernel se comparte con otras cuentas
Alojamiento WordPressNoNoPila de uso único, sin compatibilidad con contenedores
Alojamiento para revendedoresNoNoDiseñado para cPanel , no para contenedores
VPS autogestionado (sin panel de control)Aprovisionamiento compatible con Docker con AlmaLinux, Ubuntu o Debian
VPS gestionado (cPanel)Sí (con algunas salvedades)Es posible, pero no es lo idealcPanel Docker no se integran bien
Servidores dedicadosIdeal para implementaciones de contenedores de alta densidad

Un VPS es el punto de partida ideal para la mayoría de los equipos de desarrollo. Dispones de una instalación limpia de Linux, acceso root completo y ningún panel de control preinstalado que te complique las cosas. Instala Docker Engine siguiendo las instrucciones oficiales de Docker para tu distribución y lo tendrás en marcha en menos de diez minutos.

¿Qué hay de los VPS gestionados con cPanel?

Los planes de VPS gestionados de InMotion utilizan cPanel WHM, lo cual es ideal para alojar sitios web y correo electrónico tradicionales, pero complica un poco el trabajo con contenedores. cPanel para controlar directamente Apache, PHP-FPM, MySQL, exim y otros servicios. Aunque técnicamente es posible añadir Docker encima, ya que sigues teniendo acceso de root, lo que ocurre es que estás ejecutando dos sistemas de gestión que compiten entre sí en el mismo servidor.

En la práctica, los equipos que quieren tanto un entorno gestionado de cPanel como contenedores suelen ejecutarlos en máquinas diferentes. Un patrón habitual: un VPS gestionado por cPanel para las páginas web de los clientes, más un VPS más pequeño para herramientas basadas en Docker, como una instancia privada de Git, una pila de monitorización o un entorno de prueba.

Si solo tienes presupuesto para un servidor y quieres contenedores, olvídate del panel de control y opta por un VPS autogestionado.

Servidor VPS frente a servidor dedicado para cargas de trabajo en contenedores

Un VPS es una infraestructura virtualizada que se extrae de un servidor host más grande. Compartes el hardware subyacente con otros usuarios, pero tienes asignaciones garantizadas de CPU y RAM. Un servidor dedicado es una máquina física completa que se te asigna exclusivamente a ti.

En el caso de los contenedores, la elección suele depender de los requisitos de densidad y aislamiento:

  • Un VPS funciona bien para ejecutar unos cuantos contenedores por proyecto, entornos de prueba o pequeñas cargas de trabajo en producción. Puedes escalar verticalmente pasando a un plan superior cuando aumente el número de contenedores o el uso de recursos.
  • Los servidores dedicados son la mejor opción cuando necesitas ejecutar docenas de contenedores, alojar bases de datos que se benefician del rendimiento de la memoria local NVMe o cumplir requisitos de cumplimiento normativo que prohíben el uso de hipervisores compartidos. El plan Essential de InMotion (99,99 $ al mes) viene con 64 GB de RAM DDR4 y dos discos duros de 1,92 TB NVMe SSD , lo cual es capacidad más que suficiente para una flota de contenedores considerable.

InMotion utiliza RAID por software a través de mdadm en todos estos planes, lo cual es habitual en entornos de servidores Linux y funciona sin necesidad de ninguna configuración especial para Docker.

Requisitos para ejecutar Docker en un VPS

El consumo básico es modesto. El propio Docker Engine necesita unos 200 MB de RAM y un consumo mínimo de CPU cuando está inactivo. El consumo real de recursos recae en los contenedores que ejecutes sobre él.

Un buen punto de partida para calcular las dimensiones:

  • Servicios pequeños ( nginx, redis, API ligeras): 50-200 MB de RAM por contenedor
  • Aplicaciones web en Node.js o Python: entre 150 y 500 MB , dependiendo del marco de trabajo
  • PHP-FPM con un solo WordPress : 256-512 MB
  • PostgreSQL oMySQL con tráfico moderado: de 512 MB a 2 GB como mínimo
  • Aplicaciones autohospedadas como Nextcloud o Mattermost: 1-2 GB

El uso del disco también es importante. Las imágenes de contenedores, los volúmenes y la caché de compilación se acumulan rápidamente. Reserva al menos entre 30 y 50 GB en un VPS básico y contrólalo con el comando `df` de Docker (documentación).

También necesitarás:

  • Una distribución de Linux compatible. Los planes VPS de InMotion ofrecen AlmaLinux 9, Ubuntu 22.04 LTS y Debian 12, todas ellas compatibles oficialmente con Docker
  • Acceso a la red de salida para descargar imágenes de los registros
  • Una clave SSH para un acceso seguro (la autenticación con contraseña debe estar desactivada)
  • Una estrategia de reglas de firewall, ya que Docker manipula iptables y puede entrar en conflicto con configuraciones de firewall poco sofisticadas

Casos de uso habituales de Docker en un VPS

Algunos patrones que se repiten con frecuencia:

  • Herramientas para desarrolladores autohospedadas:GitLab, Gitea, Drone CI, Vaultwarden y otras similares se implementan sin problemas como contenedores
  • Servidores de fondo de las aplicaciones: API de Node.js, Python o Go detrás de un proxy inverso
  • Entornos de prueba: crea una copia exacta del entorno de producción a partir del mismo conjunto de imágenes
  • Arquitecturas de microservicios: varios servicios pequeños coordinados mediante Docker Compose
  • Proxy inverso con SSL automático: Traefik o Caddy en un contenedor se encarga de Ingress y de los certificados de Let’s Encrypt para todo lo demás que haya en el servidor
  • Aislamiento de bases de datos: ejecuta instancias independientes PostgreSQL MySQL para cada proyecto sin saturar el servidor

En el caso de las agencias, un único VPS suele alojar un proxy inverso de Traefik y una docena de entornos de prueba de clientes, cada uno aislado en su propio conjunto de contenedores. Las agencias que trabajan con varios clientes también deberían echar un vistazo al Programa de socios para agencias de InMotion, que ofrece ventajas de alojamiento por niveles.

Factores de rendimiento que afectan a las cargas de trabajo en contenedores

El rendimiento de los contenedores en un VPS no solo depende de las especificaciones técnicas. Hay algunos aspectos a tener en cuenta:

  • E/S de disco: Los contenedores que escriben mucho (bases de datos, agregadores de registros) se benefician de los planes VPS con disco « NVMe ». El disco giratorio supone un cuello de botella incluso con mucha RAM.
  • Presión de memoria: cuando superas la RAM disponible, el kernel empieza a usar el intercambio de memoria o el «OOM killer» cierra los contenedores. Ambas cosas son malas. Aumenta la capacidad antes de llegar al 80 % de uso sostenido.
  • Red: El tráfico entre contenedores del mismo host se queda en la interfaz de bucle invertido y es rápido. El tráfico entre hosts depende de la red de tu VPS. A las aplicaciones en tiempo real les importa esto; a las aplicaciones CRUD, normalmente no.
  • Tiempo de «steal» de la CPU: en una infraestructura de hipervisor compartida, fíjate en el %st en «top» o «vmstat». Si el tiempo de «steal» se mantiene por encima de un pequeño porcentaje, significa que el host está sobrecargado.
  • Almacenamiento en caché de capas de imágenes: Generar imágenes en el mismo VPS donde está tu caché de registro es mucho más rápido que tener que descargarlas de una fuente remota cada vez. Usa compilaciones en varias etapas para que las imágenes de producción sean lo más ligeras posible.

Aspectos relacionados con el coste más allá del precio de venta

La cuota mensual del VPS es solo una parte de la factura. Otros conceptos que conviene tener en cuenta a la hora de hacer el presupuesto:

  • Copias de seguridad: El plan Premier Care para VPS de InMotion incluye 300 GB de almacenamiento para copias de seguridad, lo que cubre la mayoría de las cargas de trabajo en contenedores. Asegúrate de hacer copias de seguridad de los volúmenes, no solo del sistema de archivos del host.
  • Exceso de ancho de banda: La mayoría de las implementaciones de contenedores tienen un tráfico de salida moderado, pero los procesos de integración continua (CI) con muchas imágenes o los servidores multimedia pueden llegar al límite.
  • Almacenamiento de registros de imágenes: el plan gratuito de Docker Hub limita la frecuencia de descargas. Con una cuenta de equipo o un registro autohospedado en el propio VPS se evita eso.
  • Supervisión: Las herramientas gratuitas (Prometheus, Grafana, Uptime Kuma) se ejecutan en contenedores y no cuestan nada más allá del espacio que ocupan en la RAM.
  • Tiempo de migración: Pasar de un VPS a otro con contenedores es más rápido que con el alojamiento tradicional, pero tienes que tener en cuenta el tiempo de propagación del DNS y el de renovación del SSL.

Aquí es donde los costes suelen dispararse. La densidad de contenedores parece barata hasta que te quedas sin RAM a las 2 de la madrugada y necesitas ampliar la capacidad de inmediato.

Errores comunes al implementar Docker en un VPS

Patrones que causan problemas en la producción:

  • Ejecutarlo todo como root dentro del contenedor: los contenedores deberían reducir los privilegios mediante la directiva USER en el Dockerfile
  • Almacenar datos dentro del contenedor: usa volúmenes con nombre o montajes vinculados para que los datos se mantengan tras los reinicios del contenedor y las actualizaciones de la imagen
  • Sin límites de recursos: si no usas los parámetros –memory y –cpus (o sus equivalentes en Compose), un contenedor que se descontrole puede agotar todos los recursos del resto.
  • Ignorando el tamaño de la imagen: una imagen de Node de 2 GB tarda mucho en reconstruirse y consume mucho espacio en disco. Las compilaciones en varias etapas y las imágenes base reducidas permiten mantener esto bajo control.
  • Omitir la rotación de registros: el controlador de registros JSON predeterminado de Docker escribe archivos sin límite de tamaño. Configura «max-size» y «max-file» o envía los registros a otro lugar.
  • Conflicto entre cortafuegos: Docker crea reglas de iptables que ufw y firewalld pueden anular. Elige una opción y quédate con ella.

La mayoría de estos problemas se pueden solucionar en cinco minutos, una vez que sabes dónde buscarlos.

Cuándo dar el salto más allá de un VPS

Un solo VPS autogestionado es capaz de gestionar una cantidad sorprendente de carga de trabajo de contenedores. Las señales que indican que necesitas escalar hacia arriba o hacia fuera:

  • La CPU se mantiene por encima del 75 % en varios contenedores
  • La memoria está al límite o casi al límite, sin margen para picos de uso
  • La espera de E/S de disco supera el 10 % en iostat
  • Bucles de reinicio de contenedores provocados por el agotamiento de recursos
  • Requisitos de cumplimiento que requieren hardware específico
  • Implementaciones multirregionales en las que la latencia hacia un único centro de datos es importante

Cuando llegas a esos límites, lo habitual es pasar primero a un VPS más potente, luego a un servidor dedicado con más núcleos y RAM, y finalmente a una configuración con varios servidores y un verdadero gestor de orquestación como Kubernetes o Docker Swarm. La mayoría de los equipos no necesitan un sistema de orquestación hasta que no están trabajando con varias máquinas físicas.

¿Listo para usar contenedores?
Si quieres ejecutar Docker en una infraestructura que te ofrezca acceso de root, un rendimiento predecible y asistencia técnica 24/7, la gama de VPS «Docker-Ready» de InMotion es el punto de partida ideal. Elige el plan más pequeño que se ajuste a tu presupuesto inicial de recursos y amplía la capacidad cuando tus sistemas de monitorización te lo indiquen. Descubre los planes de VPS «Docker-Ready»
Resume e investiga con IA
Compartir en redes sociales

Deja una respuesta

Tu dirección de correo electrónico no se publicará. Los campos obligatorios están marcados con *.