Un servidor cloud te da libertad para desplegar aplicaciones, automatizaciones y bases de datos. Pero esa libertad también exige criterio operativo: publicar servicios de forma ordenada, proteger el tráfico con HTTPS y evitar configuraciones difíciles de mantener.

En esta guía vas a ver una implementación práctica para publicar contenedores con Traefik, Docker labels y certificados Let's Encrypt, con comandos orientados a Ubuntu/Debian, puntos de verificación y advertencias para no comprometer disponibilidad ni seguridad.

La idea no es memorizar comandos sueltos, sino construir un flujo repetible: preparar el servidor, configurar Traefik, habilitar certificados automáticos, publicar una aplicación y validar que todo funcione correctamente.

¿Qué es Traefik?

Traefik es un reverse proxy dinámico que puede leer labels de Docker y crear rutas HTTP automáticamente. Con ACME, también puede solicitar y renovar certificados Let's Encrypt sin tener que gestionar cada certificado de forma manual.

¿Cuándo conviene usarlo?

Traefik resulta útil cuando necesitas publicar varias aplicaciones Docker desde un mismo servidor y quieres evitar una configuración manual de proxy por cada servicio.

Conviene especialmente si:

  • Tienes varias apps Docker con dominios separados.
  • Quieres reducir configuraciones manuales de NGINX por aplicación.
  • Necesitas certificados automáticos y despliegues repetibles.
  • Buscas una forma más clara de administrar rutas, servicios y TLS desde Docker Compose.

Requisitos previos

Antes de empezar, asegúrate de contar con:

  • Un Cloud Server con Docker y Docker Compose.
  • Dominios apuntando a la IP pública del servidor.
  • Puertos 80 y 443 disponibles.
  • Conocimiento básico de redes Docker.

Puertos necesarios

  • 80/tcp
  • 443/tcp
  • 8080/tcp, solo interno si usas dashboard

Paso 1: Preparar la red proxy

Primero, crea una red Docker compartida entre Traefik y las aplicaciones que vas a publicar.

docker network create proxydocker network ls

Esta red permite que Traefik pueda comunicarse con los contenedores que expongan servicios web.


Advertencia: no conectes bases de datos a la red pública del proxy si no lo necesitan.

Paso 2: Crear el compose de Traefik

Luego, prepara el directorio de trabajo y crea el archivo docker-compose.yml de Traefik.

mkdir -p /opt/traefiknano docker-compose.ymldocker compose config

En esta etapa, Traefik debe quedar configurado con Docker provider y los entrypoints web y websecure.



Advertencia: montar el socket de Docker le da mucho poder al contenedor de Traefik. Limita el acceso al host y evita exponer servicios innecesarios.

Paso 3: Configurar ACME para Let's Encrypt

Traefik puede gestionar certificados automáticamente mediante ACME. Para eso, necesita un archivo donde guardar la información de los certificados.

touch acme.jsonchmod 600 acme.jsondocker compose up -d

El permiso 600 evita que otros usuarios del sistema puedan leer el contenido del archivo.


Advertencia: acme.json contiene material sensible. Respalda el archivo y protege sus permisos.

Paso 4: Agregar labels a una aplicación

Una vez que Traefik está funcionando, puedes publicar una aplicación por dominio usando routers y services definidos mediante Docker labels.

nano app/docker-compose.ymldocker compose up -ddocker compose logs traefik --tail=100

Las labels permiten que Traefik detecte el contenedor, cree la ruta correspondiente y lo asocie al dominio configurado.



Advertencia: el dominio debe apuntar al servidor antes de solicitar el certificado.

Paso 5: Probar rutas, HTTPS y estado de los servicios

Después de levantar la z, verifica que el dominio responda por HTTPS y revisa los logs de Traefik.

curl -I https://app.example.comdocker logs traefik --tail=100docker compose ps

También conviene comprobar que el dashboard, si está habilitado, no quede expuesto públicamente.

Advertencia: no publiques el dashboard de Traefik sin autenticación o restricción por IP/VPN.


Reforzar seguridad

Antes de dar por terminado el despliegue, revisa tres puntos:

  • Que el servicio público sea realmente el que querías publicar.
  • Que los puertos internos no hayan quedado expuestos.
  • Que los secretos no estén en archivos versionados o historiales de shell.

Si el procedimiento toca bases de datos, runners, automatizaciones o certificados, prueba primero en un entorno secundario.

También conviene documentar cómo se reinicia el servicio, cómo se actualiza, dónde están los logs y cuál es el comando de verificación rápida. Esa información vale mucho cuando otra persona del equipo tiene que intervenir.

Problemas frecuentes

No emite certificado

Revisa DNS, puertos 80/443 y logs del resolver ACME.

El router no aparece

Confirma las labels, la red compartida y que traefik.enable=true esté definido

Error 502 Bad Gateway

Revisa que Traefik pueda llegar al puerto interno correcto del contenedor.

Cloud Serversby Donweb

Todo el poder de la nube a tus proyectos y aplicaciones.
Alojamiento ultra rápido, escalable y con alta disponibilidad.

  • Performance que te sorprenderá
  • Rápida escalabilidad y sin limitaciones
  • Arquitectura de alta disponibilidad
  • Soporte experto y ejecutivos de cuenta
  • Pagos en tu moneda y facturación local

Descubre la mejor solución de Cloud Hosting