I used to use Traefik but switched to Caddy. I like how easy it is to configure a new reverse proxy for one of my containers. Literally 3 new lines in my Caddyfile, restart the caddy container and away it goes getting certificates etc.
I'm not a Caddy expert (nor a Traefik one) but with Traefik I didn't even have to add any line to its config. I just use a template docker-compose and set the domain and the port.
Yeah from memory (was a while ago), Traefik hooks into the docker socket to auto-discover containers that have a specific label? Might not be remembering that correctly.