← Blog
Kubernetes vs Docker: ¿cuál es la diferencia? (explicación simple)
comparison

Kubernetes vs Docker: ¿cuál es la diferencia? (explicación simple)

Kubernetes vs Docker explicado de forma simple: qué hace cada uno, cómo funcionan juntos, cuándo necesitas K8s, y cuándo Docker solo es suficiente.

· 9 min de lectura

Kubernetes vs Docker: ¿cuál es la diferencia? (explicación simple)

Estaba leyendo una oferta de trabajo el año pasado que listaba “Docker + Kubernetes” en los requisitos como si fueran una sola cosa. Docker barra Kubernetes. Un solo bullet point. Asentí con la cabeza, asumí que eran dos nombres para la misma herramienta y seguí adelante.

Resulta que es como decir “guitarra + orquesta” como si fueran intercambiables. Están relacionados. Aparecen en las mismas conversaciones. Pero resuelven problemas completamente distintos, y entender dónde termina uno y empieza el otro te va a ahorrar mucha confusión.

Docker es el contenedor

Empecemos con Docker porque llegó primero y es la base de todo.

Docker empaqueta tu aplicación — código, dependencias, runtime, archivos de configuración, todo — en una unidad llamada contenedor. Ese contenedor corre de la misma forma en tu laptop, en un servidor de staging, en una VM de producción en AWS. Se acabó el “en mi máquina funciona” seguido de dos horas debuggeando librerías del sistema que faltan.

Para explicarlo simple: antes de Docker, hacer deploy de una aplicación significaba configurar cuidadosamente el entorno del servidor, instalar la versión correcta de Python o Node, y rezar para que nada entrara en conflicto con lo que ya estaba corriendo ahí. Un contenedor lleva todo eso dentro de sí mismo. Le da igual cómo se vea el host.

Esto es lo que Docker hace en la práctica:

Si alguna vez escribiste un Dockerfile, hiciste build de una imagen y corriste docker run, usaste Docker. Ese es todo el ciclo. Build, ship, run.

Para una sola aplicación en un solo servidor, Docker solo suele ser más que suficiente. Y honestamente, eso cubre más proyectos reales de lo que la gente quiere admitir.

Kubernetes es la orquesta

Ahora imagina que no tienes un contenedor. Tienes cuarenta. Un frontend web, un API gateway, tres microservicios, un par de workers de cola, un cache Redis, una base de datos PostgreSQL — cada uno en su propio contenedor. Corriendo en diez servidores. Algunos necesitan tres réplicas, otros necesitan diez. El tráfico se dispara a las 9 AM todos los días laborales y necesitas escalar. Un servidor muere a las 3 AM y alguien tiene que reiniciar los contenedores que estaban corriendo ahí.

No vas a hacer SSH a cada servidor y correr docker run manualmente. Perderías la cordura antes del jueves.

Ahí es donde entra Kubernetes. Kubernetes — K8s para abreviar, porque alguien decidió que las ocho letras entre la K y la S necesitaban una contracción — es un orquestador de contenedores. No construye contenedores. No reemplaza a Docker. Gestiona contenedores a gran escala.

Esto es lo que Kubernetes maneja:

A Kubernetes le da igual cómo se construyeron tus contenedores. Solo necesita imágenes de contenedores para ejecutar. Docker construye las imágenes. Kubernetes las ejecuta y las gestiona.

La analogía que de verdad me ayudó

Docker es un músico. Sabe tocar su instrumento, cargar su propio equipo y ejecutar su parte perfectamente.

Kubernetes es el director de orquesta. No toca ningún instrumento. Pero decide quién toca cuándo, cuántos violines se necesitan esta noche, qué pasa si el chelista se enferma, y cómo incorporar un reemplazo sin que el público se dé cuenta.

Puedes tener un músico sin director. Concierto en solitario, local pequeño, funciona. Pero no puedes tener un director sin músicos. Y una vez que hay treinta músicos en el escenario, alguien necesita coordinar o es ruido, no música.

Cómo funcionan juntos

Esta es la parte que me confundió durante más tiempo. Docker y Kubernetes no son competidores. Son capas en el mismo stack.

El flujo típico se ve así:

  1. Escribes un Dockerfile que define la imagen de contenedor de tu aplicación
  2. Haces build de la imagen con docker build
  3. Subes la imagen a un registro de contenedores (Docker Hub, ECR, GCR, lo que sea)
  4. Escribes manifiestos de Kubernetes (archivos YAML) que describen cuántas réplicas correr, qué recursos necesitan, cómo exponerlas a la red
  5. Kubernetes descarga la imagen del registro y la corre en tu cluster

Docker maneja los pasos 1 a 3. Kubernetes maneja los pasos 4 y 5. Se encuentran en la imagen del contenedor — ese es el punto de transferencia.

Un detalle que vale la pena saber: Kubernetes dejó de soportar Docker directamente en la versión 1.24 (diciembre 2022). Ahora usa containerd o CRI-O como runtime de contenedores. Pero sigues construyendo imágenes con Docker. Las imágenes en sí son conformes a OCI, lo que significa que funcionan en todas partes. Nada cambió desde tu perspectiva como desarrollador.

Cuándo NO necesitas Kubernetes

Sé que esto puede sonar raro en un artículo de “Kubernetes vs Docker”, pero: la mayoría de los proyectos no necesitan Kubernetes. Ya lo dije.

Probablemente no necesitas K8s si:

Docker Compose es el punto ideal para una cantidad sorprendente de aplicaciones. Define tus servicios en un docker-compose.yml, corre docker compose up, y tienes un setup multi-contenedor con networking, volúmenes y variables de entorno. Sin gestión de cluster, sin proliferación de YAML, sin sesiones de debug de tres días porque un pod no puede alcanzar un servicio.

He visto equipos adoptar Kubernetes para una aplicación de dos servicios porque parecía la opción “seria”. Seis meses después tenían más archivos YAML que código de aplicación y un cluster que nadie entendía del todo. La infraestructura debe ajustarse al problema, no al currículum.

Cuándo SÍ necesitas Kubernetes

Dicho esto, Kubernetes existe por una razón, y cuando lo necesitas, nada más se le acerca.

Deberías considerar seriamente K8s cuando:

Kubernetes brilla exactamente en el nivel de complejidad donde la gestión manual colapsa. Si estás corriendo quince servicios en seis servidores y necesitas que todos se mantengan activos, auto-escalen y se actualicen sin downtime — ese es territorio de K8s. Intentar hacer eso con scripts de shell y Docker Compose va a funcionar hasta que deje de funcionar, generalmente a las 3 AM en un día festivo.

La mayoría de las ofertas de Kubernetes gestionado (EKS, GKE, AKS) también se encargan de las partes difíciles del control plane. No necesitas operar etcd tú mismo. El proveedor cloud se encarga de eso. Tú defines lo que quieres correr y Kubernetes se ocupa del resto.

El orden de aprendizaje (esto importa)

Si estás empezando desde cero, aquí va mi recomendación honesta: aprende Docker primero. Punto.

Kubernetes sin conocer Docker es como intentar aprender orquestación sin saber cómo suena un instrumento. Vas a memorizar campos de YAML sin entender lo que realmente está pasando dentro de los contenedores que despliegas.

Aquí tienes una ruta de aprendizaje concreta:

  1. Bases de Docker — imágenes, contenedores, Dockerfiles, volúmenes, networking. Construye una imagen de aplicación real, córrela, rómpela, arréglala.
  2. Docker Compose — setups multi-contenedor. Haz que una app web + base de datos + cache corra en local.
  3. Fundamentos de contenedores — entiende qué son los namespaces, los cgroups y las capas bajo el capó. No es obligatorio, pero quita la magia.
  4. Conceptos de Kubernetes — pods, deployments, services, ingress. Empieza con Minikube o Kind en tu laptop.
  5. Kubernetes en la práctica — despliega tu aplicación de Docker Compose en un cluster K8s. Observa cómo se mapean los conceptos.

La mayoría de la gente intenta aprender ambos simultáneamente y termina confundida sobre qué capa hace qué. Docker primero, luego K8s. Cada ingeniero con experiencia al que le he preguntado dice lo mismo.

Si estás construyendo habilidades cloud desde cero, esta guía para aprender cloud computing como principiante te muestra la hoja de ruta completa — contenedores incluidos.

Y si encontrar tiempo diario para esto te parece imposible, construir un hábito de aprendizaje de 15 minutos es un enfoque mucho más sostenible que las sesiones maratón del fin de semana que olvidas para el lunes.


FAQ

¿Puedo usar Kubernetes sin Docker?

Sí, técnicamente. Kubernetes funciona con cualquier runtime de contenedores conforme a OCI — containerd y CRI-O son los más comunes. Pero probablemente sigas usando Docker para construir tus imágenes, aunque Kubernetes use un runtime diferente para ejecutarlas. En la práctica, Docker sigue siendo la herramienta estándar para crear imágenes de contenedores, y eso no va a cambiar pronto.

¿Docker Compose reemplaza a Kubernetes?

Para proyectos de tamaño pequeño a mediano, puede hacerlo. Docker Compose maneja muy bien la orquestación multi-contenedor en un solo host. Donde se queda corto es en el escalado multi-nodo, la auto-reparación entre servidores y el balanceo de carga a nivel de producción. Si tu app vive en un solo servidor y no necesitas auto-scaling, Compose es más simple y perfectamente válido. Una vez que superas eso, Kubernetes toma el relevo.

¿Kubernetes es demasiado para mi proyecto?

Probablemente, si estás haciendo la pregunta. No es un ataque — es sinceramente cierto para la mayoría de las aplicaciones. Kubernetes añade complejidad operacional que solo se rentabiliza a cierta escala. Si tienes menos de cinco servicios y un equipo pequeño, empieza con Docker Compose o un servicio de contenedores gestionado. Siempre puedes migrar a K8s después, y tomarás mejores decisiones al respecto una vez que hayas alcanzado los límites de herramientas más simples.

¿Cuánto tiempo lleva aprender Kubernetes?

Las bases de Docker: una o dos semanas de práctica enfocada. Los fundamentos de Kubernetes (suficiente para desplegar y gestionar una aplicación simple): otras dos a cuatro semanas. Kubernetes en profundidad (networking, RBAC, Helm, operators, debug de problemas en producción): meses de trabajo práctico. La brecha entre “puedo seguir un tutorial” y “puedo debuggear un pod fallando en producción” es considerable. Ten paciencia.


¿Quieres una ruta estructurada a través de Docker, Kubernetes e infraestructura cloud? Descubre SkillRealm Learn →

¿Listo/a para aprender de forma más inteligente?

Únete al acceso anticipado y sé de los primeros en probar SkillRealm Learn.

Sin spam. Cancela cuando quieras.

kubernetes vs docker diferencia docker vs kubernetes explicado simple necesito kubernetes o docker kubernetes docker comparacion principiante