Saltar al contenido

Soluciones · Contenedores

¿Cuánto servidor necesita Docker?

Los contenedores son procesos que comparten un kernel, no pequeñas máquinas virtuales: el daemon ocupa unos 100 MB y todo lo demás son simplemente sus propios procesos. Así que la respuesta es menor de lo que se espera: un proxy, una aplicación, una base de datos y una caché suman en conjunto unos 515 MB, lo que cabe con holgura en BD-8 a $12.90.

Qué ocupa realmente un contenedor

Rangos, no benchmarks

Su imagen, su configuración y su tráfico influyen en estas cifras más que cualquier tabla. Ejecute docker stats en su propio stack: es la única cifra que le aplica.

Memoria residente habitual de cargas de trabajo de contenedores comunes
ContenedorMemoria habitualCabe en BD-8 (8 GB)
Un proxy inversonginx, Caddy, Traefik15–60 MB129 en el extremo alto
Una pequeña aplicación webNode, Python, Go: un solo proceso60–200 MB38 en el extremo alto
PostgreSQL o MySQLconjunto de datos pequeño, pool predeterminado200–500 MB15 en el extremo alto
Rediscomo caché, limitado por maxmemory20–200 MB38 en el extremo alto
Un servicio JVMJava, Kotlin, Elasticsearch500–2000 MB3 en el extremo alto

La aritmética

Qué cabe en cada plan

La memoria, menos 300 MB para el sistema operativo y 100 MB para el daemon, dividida entre lo que ocupan sus contenedores. La columna central es un stack completo (proxy, aplicación, base de datos, caché) de unos 515 MB.

Capacidad de contenedores y stacks por plan, con disco y precios en tiempo real
PlanRAMStacks completosAplicaciones pequeñasDiscoPrecioImplementar
VPS-11 GB1325 GB$9.90Implementar
BD-88 GB1538100 GB$12.90Implementar
BD-1212 GB2359200 GB$17.90Implementar
BD-2424 GB46120300 GB$31.90Implementar

El disco es la segunda sorpresa, y la que llega más tarde: imágenes, volúmenes y registros se acumulan sin hacer ruido. Ponga docker system prune en un cron semanal antes de que sea urgente, no después.

Contra nosotros mismos

Cuándo no debería comprar esto

Una plataforma de contenedores administrada cuesta más porque se encarga de la operación. Es algo real que se paga.

Un VPS le da acceso root y le deja a usted las actualizaciones, los reinicios, los certificados y las alertas. Es muchísimo más barato y, de verdad, supone más trabajo. Si no quiere ese trabajo, una plataforma administrada es la respuesta honesta, y preferimos recomendarla antes que vender una máquina que acabe abandonada con un daemon sin parches expuesto a internet. Dos consejos más en la misma línea: establezca un límite de memoria en cada contenedor para que, si uno falla, muera ese y no su base de datos, y no recurra a Kubernetes en una sola máquina: un orquestador sin nada que planificar es solo complejidad.

Preguntas

Lo que se pregunta antes de contratar uno.

¿Cuánta RAM usa Docker en sí?
Muy poca, y esto es lo que sorprende. El daemon de Docker ocupa unos 100 MB y cada contenedor a partir de ahí es solo un proceso: no hay un segundo sistema operativo, ni un segundo kernel, ni un coste fijo por contenedor como ocurre con una máquina virtual. Así que la aritmética es sencilla: la memoria de su máquina, menos unos 300 MB para el sistema operativo y 100 MB para el daemon, repartida entre los procesos que realmente ejecuta.
¿Cuántos contenedores puede ejecutar un VPS pequeño?
Más de lo que sugiere la pregunta, porque "un contenedor" no es una unidad de tamaño. Diez proxies inversos y un Elasticsearch son máquinas totalmente distintas. En BD-8 (8 GB por $12.90), un proxy, una aplicación web, una base de datos y una caché suman juntos unos 515 MB, lo que deja libre la mayor parte de la máquina. La tabla de arriba hace la división; ejecute `docker stats` en su propio stack para obtener la cifra que realmente le aplica.
¿Es un VPS más barato que una plataforma de contenedores administrada?
Casi siempre en precio, pero esa no es toda la comparación. Una plataforma cobra más porque se encarga de la operación: actualizaciones, reinicios, certificados, la alerta a las 3 de la madrugada. Un VPS le da acceso root y le devuelve todo eso a usted. Si quiere ejecutar contenedores y está dispuesto a asumir ese trabajo, un VPS es muchísimo más barato. Si prefiere no hacerlo, pague la plataforma: preferimos decirlo antes que venderle una máquina que acabe abandonada con un daemon sin parches.
¿Necesito Docker Swarm o Kubernetes?
En una sola máquina, no. Compose basta para un stack que vive en un único servidor, y es la respuesta correcta para la inmensa mayoría de las instalaciones autoalojadas: la tarea de un orquestador es planificar entre máquinas, y con una sola máquina no hay nada que planificar. Recurra a Kubernetes cuando de verdad tenga varias máquinas y un motivo para asumir la complejidad, no antes.
¿Qué falla primero: memoria, CPU o disco?
La memoria, normalmente, y falla de forma ruidosa: el OOM killer del kernel elige un proceso y lo termina, lo que parece un contenedor que se reinicia misteriosamente. Establezca límites de memoria por contenedor para que el que falla sea el que muera y no su base de datos. El disco es la segunda sorpresa: imágenes, volúmenes y registros se acumulan sin hacer ruido, así que `docker system prune` debería estar en un cron semanal mucho antes de que sea urgente.
¿Qué imagen debería ejecutar el host?
Cualquiera de las nuestras: todos los planes ejecutan todas las imágenes y Docker funciona en todas. Ubuntu LTS es la opción predeterminada recomendable si no tiene preferencia, simplemente porque la mayoría de la documentación de contenedores la da por supuesta. La distribución importa mucho menos de lo que parece: los contenedores traen su propio espacio de usuario, así que el host es poco más que un kernel y un daemon.