Ir al contenido

¿Qué es Docker? Contenedores, imágenes y flujos de trabajo

Docker es una plataforma que empaqueta una aplicación y sus dependencias en una unidad portable llamada contenedor. A diferencia de una máquina virtual completa, el contenedor comparte el kernel del host aislando sistema de archivos, red y procesos. Los equipos lo usan para obtener el mismo comportamiento en local, CI y producción, y para desplegar más rápido sin el clásico «en mi máquina funciona».

En una frase

Docker mete tu app y dependencias en una caja portable que se comporta igual en todas partes.

Para recordar

  • Una imagen es una plantilla inmutable; un contenedor es una instancia en ejecución.
  • El Dockerfile describe cómo construir la imagen; Compose orquesta varios servicios locales.
  • El aislamiento es más ligero que una VM: arranque rápido y mayor densidad por servidor.
  • La seguridad exige imágenes actualizadas, usuarios no root y registros de confianza.

Ficha del término

Docker
Contenedor Docker · Docker Engine · Imagen Docker
Término en inglés
Docker
Dominio
Cloud y DevOps
Categoría
Contenedores
Nivel
Principiante a intermedio

¿Qué significa exactamente «Docker»?

Docker popularizó los contenedores Linux con una herramienta para construir imágenes, publicarlas en un registro y ejecutarlas. Por debajo, el aislamiento usa namespaces, cgroups y sistemas de archivos en capas (a menudo OverlayFS).

Para una pyme en Montreal, Docker estandariza entornos de desarrollo y prepara el despliegue en la nube o Kubernetes. Lo habitual es contenerizar primero una API Node o Python y luego la base con Compose.

Docker no es Kubernetes: Docker construye y ejecuta contenedores; Kubernetes los orquesta a escala. Muchos equipos usan Docker Desktop en local y un runtime OCI en producción.

¿Cómo se adopta Docker en la práctica?

  1. 01

    Escribir un Dockerfile mínimo

    Partir de una imagen oficial, copiar el código, instalar dependencias y definir el arranque; multi-stage para aligerar la imagen final.

  2. 02

    Probar en local con Compose

    Describir API, base de datos y caché en docker-compose.yml para reproducir el stack completo.

  3. 03

    Publicar en un registro

    Subir imágenes versionadas (SHA de git o semver) a Docker Hub, GHCR o un registro privado.

  4. 04

    Integrar CI/CD

    Construir, escanear vulnerabilidades y desplegar la imagen desde el pipeline en cada merge.

Ejemplo concreto de Docker

Una agencia web en Montreal conteneriza su API NestJS y Postgres. Los desarrolladores ejecutan `docker compose up` y obtienen el mismo stack en minutos. En CI la imagen se construye, se escanea y se despliega en un VPS. Desaparecen las diferencias de entorno; el onboarding de un nuevo dev pasa de un día a menos de una hora.

¿Para qué sirve Docker?

Entornos de desarrollo homogéneos

Todo el equipo comparte las mismas versiones de runtime y servicios auxiliares.

Pipelines CI reproducibles

Las pruebas corren en la imagen exacta que irá a producción.

Microservicios locales

Componer API, worker y Redis sin instalar cada runtime a mano.

Migración a la nube

Una imagen OCI se despliega en ECS, Cloud Run, AKS o un clúster Kubernetes.

Ventajas y límites de Docker

  • Alta portabilidad entre portátiles, CI y nube
  • Arranque más rápido que las máquinas virtuales
  • Ecosistema maduro (Hub, Compose, BuildKit)
  • Mejora la paridad dev/prod
  • Curva de aprendizaje (red, volúmenes, multi-stage)
  • Imágenes mal diseñadas son pesadas o inseguras
  • En Windows/macOS la VM subyacente añade complejidad
  • No sustituye por sí solo la orquestación a gran escala

¿Docker frente a una máquina virtual?

DockerMáquina virtual (VM)
AislamientoComparte el kernel del host; aísla procesos y FSKernel y SO invitado completos
Tamaño / arranqueImágenes de decenas/centenas de MB; segundosGB de disco; arranque más lento
DensidadMuchos contenedores por hostMenos invitados por hipervisor
UsoApps cloud-native, CI, microserviciosCargas que necesitan un SO distinto o aislamiento más fuerte

Por qué Docker importa para una pyme quebequense

Los equipos compactos en Quebec no pueden permitirse entornos divergentes ni caídas por una dependencia olvidada. Docker reduce el riesgo operativo, acelera las puestas en producción y prepara el salto a la nube sin reescribir la aplicación. Es productividad y un estándar que socios y contrataciones ya esperan.

Preguntas frecuentes

¿Docker es gratis?

Docker Engine de código abierto y muchas imágenes comunitarias lo son en gran medida. Docker Desktop tiene condiciones de licencia según el tamaño de la empresa: consulta el sitio de Docker.

¿Hace falta Kubernetes si usamos Docker?

No. Muchas pymes despliegan una o pocas imágenes con Compose, un PaaS o un servicio gestionado. Kubernetes ayuda con muchos servicios, autoscaling y alta disponibilidad.

¿Cómo asegurar las imágenes?

Bases oficiales mínimas, actualizaciones, escaneo de vulnerabilidades, usuario no root y secretos fuera de la imagen.

¿Docker sustituye las pruebas?

No. Garantiza un runtime reproducible; las pruebas unitarias, de integración y de seguridad siguen siendo imprescindibles.

Términos relacionados

Fuentes y referencias

¿Quiere contenerizar una API o estandarizar los entornos del equipo? Podemos acotar Dockerfile, Compose y el pipeline CI.

Hablar de su stack de contenedores
Glosario