Qué hace este laboratorio
Traefik con Docker resuelve un problema concreto: exponer varios contenedores en el puerto 80 sin reservar un puerto distinto para cada uno. En este laboratorio instalas Traefik como proxy inverso con su proveedor Docker, levantas dos backends con etiquetas de enrutado y compruebas con curl que cada nombre de host llega al contenedor correcto.
Etiquetas en vez de ficheros de configuración
Todo se declara en un único compose.yaml, la forma recomendada por la documentación oficial de Docker Compose: Traefik monta el socket de Docker como solo lectura, escucha en el puerto 80 y expone su API en el 8080. Cada backend añade traefik.http.routers.<nombre>.rule=Host(`dominio`) y Traefik recalcula sus rutas en cuanto detecta el contenedor, sin reiniciar nada. El mismo patrón de red por contenedores lo vimos ya en nuestra guía de redes en Docker: bridge, host y personalizadas.
Cómo se relaciona con otras piezas del stack
Si vienes de gestionar los certificados y dominios a mano, compara este enfoque declarativo con nuestra guía para instalar Nginx Proxy Manager con Docker, que resuelve el mismo problema desde una interfaz web. Para supervisar los contenedores que Traefik va a enrutar, puedes apoyarte en nuestro laboratorio de Portainer con Docker Compose. El código fuente de Traefik es público en su repositorio en GitHub. Encuentras más guías de autohospedaje en la categoría Herramientas y el resto de procedimientos reproducibles en nuestros laboratorios prácticos.
Preguntas frecuentes
¿Qué es Traefik?
Traefik es un proxy inverso y balanceador de carga pensado para entornos de contenedores. En lugar de mantener un fichero de rutas a mano, observa el socket de Docker y construye su configuración de forma dinámica a partir de las etiquetas que pones en cada contenedor.
¿Cómo sabe Traefik a qué contenedor enviar una petición?
Cada contenedor lleva una etiqueta traefik.http.routers.<nombre>.rule con una condición, normalmente Host(`dominio`). Cuando llega una petición, Traefik compara la cabecera Host con esas reglas y reenvía el tráfico al contenedor cuya regla coincide.
¿Es seguro usar –api.insecure=true en producción?
No. Ese flag publica el panel y la API de Traefik sin autenticación, algo válido solo para pruebas locales como este laboratorio. En producción se protege con autenticación y, normalmente, sin publicar el puerto de la API al exterior.
¿En qué se diferencia Traefik de Nginx Proxy Manager?
Nginx Proxy Manager se gestiona sobre todo desde su interfaz web, añadiendo cada dominio a mano. Traefik se configura declarativamente con etiquetas en cada contenedor, así que un nuevo servicio queda enrutado en cuanto arranca, sin abrir ningún panel.