automatically discover any services on the Docker host and let Træfik reconfigure itself automatically when containers get created (or shut down) so HTTP traffic can be routed accordingly.
use Træfik as a layer-7 load balancer with SSL termination for a set of micro-services used to run a web application.
Docker containers can only communicate with each other over TCP when they share at least one network.
Docker under the hood creates IPTable rules so containers can't reach other containers unless you'd want to
Træfik can listen to Docker events and reconfigure its own internal configuration when containers are created (or shut down).
Enable the Docker provider and listen for container events on the Docker unix socket we've mounted earlier.
Enable automatic request and configuration of SSL certificates using Let's Encrypt.
These certificates will be stored in the acme.json file, which you can back-up yourself and store off-premises.
there isn't a single container that has any published ports to the host -- everything is routed through Docker networks.
Thanks to Docker labels, we can tell Træfik how to create its internal routing configuration.
container labels and service labels
With the traefik.enable label, we tell Træfik to include this container in its internal configuration.
tell Træfik to use the web network to route HTTP traffic to this container.
Service labels allow managing many routes for the same container.
When both container labels and service labels are defined, container labels are just used as default values for missing service labels but no frontend/backend are going to be defined only with these labels.
In the example, two service names are defined : basic and admin.
They allow creating two frontends and two backends.
Always specify the correct port where the container expects HTTP traffic using traefik.port label.
all containers that are placed in the same network as Træfik will automatically be reachable from the outside world
With the traefik.frontend.auth.basic label, it's possible for Træfik to provide a HTTP basic-auth challenge for the endpoints you provide the label for.
The objective of Let’s Encrypt and the ACME protocol is to make it possible to set up an HTTPS server and have it automatically obtain a browser-trusted certificate, without any human intervention.
First, the agent proves to the CA that the web server controls a domain.
Then, the agent can request, renew, and revoke certificates for that domain.
The first time the agent software interacts with Let’s Encrypt, it generates a new key pair and proves to the Let’s Encrypt CA that the server controls one or more domains.
The Let’s Encrypt CA will look at the domain name being requested and issue one or more sets of challenges
different ways that the agent can prove control of the domain
Once the agent has an authorized key pair, requesting, renewing, and revoking certificates is simple—just send certificate management messages and sign them with the authorized key pair.
A
certificate is considered a duplicate of an earlier certificate if they contain
the exact same set of hostnames, ignoring capitalization and ordering of
hostnames.
We also have a Duplicate Certificate limit of 5 certificates per week.
a
Renewal Exemption to the Certificates per Registered Domain limit.
The Duplicate Certificate limit and the Renewal Exemption ignore the public key
and extensions requested
You can issue 20 certificates in
week 1, 20 more certificates in week 2, and so on, while not interfering with
renewals of existing certificates.
Revoking certificates does not reset rate limits
If you’ve hit a rate limit, we don’t have a way to temporarily reset it.
get a list of certificates
issued for your registered domain by searching on crt.sh
Revoking certificates does not reset rate limits
If you have a large number of pending authorization objects and are getting a
rate limiting error, you can trigger a validation attempt for those
authorization objects by submitting a JWS-signed POST to one of its challenges, as
described in the
ACME spec.
If you do not
have logs containing the relevant authorization URLs, you need to wait for the
rate limit to expire.
having a large number of pending authorizations is generally the
result of a buggy client