¿Qué son Docker y los contenedores?
Un contenedor es un paquete de software autónomo que agrupa una aplicación con todas las bibliotecas y configuraciones que necesita, de modo que funcione igual en cualquier sistema. Docker es la plataforma más extendida para crear y ejecutar este tipo de contenedores.

Docker y contenedores: definición
La imagen procede de la logística: igual que un contenedor marítimo cabe en cualquier barco, tren o camión independientemente de su contenido, un contenedor de software funciona tanto en el portátil del desarrollador como en el servidor de pruebas o en la nube. La temida frase «Pues en mi equipo funciona» deja así de ser un problema.
Docker se publicó en 2013 e hizo que la tecnología de contenedores fuera práctica para el día a día de los equipos de desarrollo. Hoy es una herramienta estándar en desarrollo y operación.
Cómo funcionan los contenedores
A diferencia de una máquina virtual, un contenedor no incluye un sistema operativo propio, sino que comparte el núcleo del sistema anfitrión. Eso hace que los contenedores sean ligeros: se inician en segundos y necesitan pocos recursos.
Para operar muchos contenedores en varios servidores se utilizan herramientas de orquestación como Kubernetes. Estas reparten la carga, reinician los contenedores que han fallado y escalan cuando es necesario.
- Dockerfile: instrucciones de construcción que describen qué debe incluir el contenedor
- Imagen: plantilla inmutable a partir de la cual se inician los contenedores
- Contenedor: instancia en ejecución de una imagen
- Registro (registry): almacén de imágenes, p. ej., Docker Hub
- Docker Compose: inicia conjuntamente varios contenedores relacionados
Ventajas y límites de los contenedores
Los contenedores garantizan entornos idénticos desde el desarrollo hasta el sistema en producción. Los nuevos miembros del equipo ponen en marcha un proyecto con un solo comando, los despliegues se vuelven reproducibles y distintas aplicaciones con versiones diferentes funcionan sin problemas una junto a otra.
Sin embargo, los contenedores añaden complejidad: las imágenes deben mantenerse actualizadas para que no se utilicen bibliotecas obsoletas e inseguras. Los datos que deben conservarse de forma permanente necesitan áreas de almacenamiento propias. Y Kubernetes suele estar sobredimensionado para proyectos pequeños.
- El mismo entorno desde el desarrollo hasta producción
- Inicio rápido, bajo consumo de recursos
- Fácil de combinar con CI/CD y hosting en la nube
- Actualizar periódicamente las imágenes y las dependencias
Ejemplo práctico: contenedores para una aplicación que ha crecido con los años
Una empresa opera una aplicación web interna que solo funciona correctamente en un servidor concreto, ya obsoleto. Si la aplicación se empaqueta en contenedores junto con la base de datos y los servicios en segundo plano, puede trasladarse a una infraestructura moderna, probarse en local e integrarse en un pipeline de CI/CD. Al mismo tiempo, el Dockerfile documenta lo que la aplicación necesita para funcionar, un conocimiento que antes a menudo solo tenían algunas personas.
Nano Concepts lleva a contenedores aplicaciones existentes y nuevas, configura el entorno de ejecución adecuado y elige deliberadamente tanta infraestructura como sea necesaria: desde un único servidor con Docker Compose hasta un entorno Kubernetes.
Preguntas frecuentes sobre Docker y contenedores
Una máquina virtual reproduce un ordenador completo con sistema operativo propio. Los contenedores comparten el núcleo del sistema operativo del anfitrión y, por eso, son más pequeños y se inician más rápido.
Docker Engine es de código abierto. Para Docker Desktop rigen condiciones de licencia de pago para las empresas de mayor tamaño; el proveedor informa de los detalles actuales.
No. Muchas aplicaciones funcionan bien con Docker y Docker Compose en uno o pocos servidores. Kubernetes compensa cuando hay muchos servicios, mucha carga o requisitos estrictos de disponibilidad.
Servicios que encajan

DevOps y CI/CD
Pruebas, compilaciones y despliegues automatizados: lanzamientos más rápidos y menos caídas en producción.
Más información
Bases de datos y nube
Arquitectura de datos, migración y alojamiento cloud: alto rendimiento, seguridad y, si lo desea, en centros de datos alemanes.
Más información
Desarrollo de software
Software desde el requisito hasta la operación: web, móvil e interfaces con un único proveedor.
Más informaciónTérminos relacionados
Relevante para estos sectores
Artículos relacionados de la revista

DevOps y GitOps: pipeline CI/CD, calidad y versiones reproducibles
Versiones sin sobresaltos: cómo un pipeline CI/CD, la infraestructura como código y un plan de rollback ensayado hacen que la entrega de software sea reproducible y medible.
Seguir leyendo
Microservicios o monolito: guía de decisión para equipos y productos
Los microservicios se consideran modernos, pero para muchos productos un monolito modular es la mejor opción. Cómo valorar con realismo equipos, versiones, consistencia de datos y costes de operación.
Seguir leyendo
Escalado en la nube para plataformas: cuellos de botella y costes
Más servidores rara vez resuelven el problema real. Cómo escalar plataformas web con criterio: medir los cuellos de botella, empezar por la base de datos y la caché y controlar costes y resiliencia desde el principio.
Seguir leyendo