La analogía cotidiana: imágenes y contenedores
Piensa en un contenedor de transporte marítimo. Sea lo que sea lo que pongas dentro, tiene una forma estándar, así que cualquier barco, camión o grúa puede transportarlo sin importarle el contenido. Un contenedor Docker hace lo mismo con el software: envuelve tu aplicación y sus dependencias en un paquete estándar, así cualquier sistema compatible puede ejecutarla de forma idéntica, sin sorpresas del tipo "en mi máquina funciona".
Dos términos causan la mayor parte de la confusión. Una "imagen" es el plano: una instantánea congelada de tu aplicación y su entorno. Un "contenedor" es una instancia en vivo y en ejecución creada a partir de esa imagen. Puedes iniciar muchos contenedores desde una sola imagen, igual que puedes abrir muchas copias de un documento a partir de una plantilla. Las imágenes suelen almacenarse en un "registro" (como Docker Hub o uno privado) y se descargan cuando se necesitan.
Archivos compose y cuánto Docker necesitas realmente
Las aplicaciones reales rara vez son una sola pieza: podrías tener una aplicación web, un worker en segundo plano, una base de datos y una caché. Un archivo docker-compose.yml lista todos estos "servicios" y cómo se conectan, así que toda la pila puede arrancar junta con una sola definición. En CDN.com.tr puedes importar un archivo compose y cada servicio se convierte en una aplicación gestionada, mientras que las bases de datos y las cachés pueden convertirse en complementos gestionados.
A menudo necesitas menos de lo que esperas. Si gestionas WordPress o un sitio PHP, no necesitas ningún conocimiento de Docker: esas plataformas son de apuntar y hacer clic. Docker solo importa cuando quieres ejecutar una aplicación personalizada. E incluso entonces, muchas aplicaciones ya tienen una imagen lista para usar por nombre, o un archivo docker-compose que puedes importar, sin tener que escribir Docker tú mismo.
¿Qué es un docker-compose.yml? Un ejemplo en 60 segundos
docker-compose.yml es un pequeño archivo de texto que nombra cada servicio que tu aplicación necesita y cómo se conectan. Este describe una aplicación de tres piezas — un servidor web, tu propia API y una base de datos:
``` services: web: image: nginx:alpine ports: - "80:80" api: build: ./api db: image: postgres:16 environment: POSTGRES_PASSWORD: example ```
Léelo de arriba abajo y conoces toda la pila: web usa una imagen de nginx ya lista, api se construye a partir de tu código, db es Postgres con un solo ajuste. Ese único archivo es lo que significa "Docker Compose" en la práctica: en lugar de arrancar tres contenedores a mano con los flags correctos, los escribes una vez y levantas todo junto.
En CDN.com.tr ese mismo archivo es el formato de importación: pégalo y cada servicio se convierte en una aplicación gestionada, mientras que las bases de datos pueden convertirse en complementos gestionados.
Cómo funciona en CDN.com.tr, y sus límites honestos
Para ejecutar una aplicación personalizada, nos das una imagen (por ejemplo, una imagen pública como "nginx" o la tuya propia desde un registro) o importas un archivo docker-compose. La plataforma descarga la imagen, la ejecuta, le da una URL con HTTPS automático, y la mantiene saludable. Gestionas variables de entorno, escalado y reinicios desde el panel: sin administración de servidores, y sin necesidad de construir imágenes en la propia plataforma.
La plataforma ejecuta tus contenedores pero no es un lugar para construir imágenes ni para ejecutar Docker dentro de Docker, y no expone puertos TCP públicos sin procesar (el acceso público es HTTP(S); el tráfico interno entre servicios se mantiene privado). Para la mayoría de las aplicaciones web, APIs, workers y herramientas esto es exactamente lo que necesitas; para un sistema de CI que construye imágenes, deberías construir en otro lugar y desplegar el resultado aquí.
Cuándo te ayuda Docker aquí
Despliega algo como RabbitMQ o Jenkins por nombre de imagen, con un volumen persistente para que sus datos sobrevivan a los reinicios.
Construye tu imagen en tu propio pipeline, súbela a un registro, y ejecútala aquí con una URL y HTTPS.
Importa un docker-compose.yml y consigue que web, worker, base de datos y caché funcionen juntos en un solo paso.
Preguntas frecuentes
¿Es difícil aprender Docker?
Lo básico es sencillo: una imagen es una plantilla, un contenedor es una copia en ejecución. Para usar CDN.com.tr, sobre todo solo proporcionas el nombre de una imagen o un archivo compose; rara vez necesitas escribir Docker tú mismo.
¿Puedo usar la plataforma sin Docker?
Sí. El hosting de WordPress y PHP no requiere Docker en absoluto. Docker solo entra en juego para aplicaciones en contenedor personalizadas.
¿Puedo construir mi imagen en CDN.com.tr?
No; la plataforma ejecuta imágenes, no las construye (sin Docker dentro de Docker). Constrúyela en tu propio pipeline o localmente, súbela a un registro, y luego despliégala aquí.
¿Qué es Docker Compose, en una frase?
Docker Compose es una forma de describir varios contenedores (web, API, base de datos…) en un solo archivo docker-compose.yml para que arranquen y se conecten juntos — y ese mismo archivo se puede importar directamente en CDN.com.tr.