Traefik is a modern HTTP reverse proxy and ingress controller that makes deploying microservices easy.
Traefik integrates with your existing infrastructure components (Kubernetes, Docker, Swarm, Consul, Nomad, etcd, Amazon ECS, ...) and configures itself automatically and dynamically.
Pointing Traefik at your orchestrator should be the only configuration step you need.
Enable docker
provider and dashboard UI:
## traefik.yml
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
# API and dashboard configuration
api:
insecure: true
Start Traefik v3:
docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v3
Start a backend server using the traefik/whoami
image:
docker run -d --name test traefik/whoami
Access the whoami service through Traefik via the defined rule test.docker.localhost
:
$ curl test.docker.localhost
Hostname: 0693100b16de
IP: 127.0.0.1
IP: ::1
IP: 192.168.215.4
RemoteAddr: 192.168.215.3:57618
GET / HTTP/1.1
Host: test.docker.localhost
User-Agent: curl/8.7.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.215.1
X-Forwarded-Host: test.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 8a37fd4f35fb
X-Real-Ip: 192.168.215.1
Access the Traefik Dashboard:
Open your web browser and navigate to http://localhost:8080
to access the Traefik dashboard.
This will provide an overview of routers, services, and middlewares.
Enable docker
provider and dashboard UI:
## traefik.yml
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
# API and dashboard configuration
api:
insecure: true
Start Traefik v2:
docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v2.11
Start a backend server using the traefik/whoami
image:
docker run -d --name test traefik/whoami
Access the whoami service through Traefik via the defined rule test.docker.localhost
:
$ curl test.docker.localhost
Hostname: 390a880bdfab
IP: 127.0.0.1
IP: 172.17.0.3
GET / HTTP/1.1
Host: test.docker.localhost
User-Agent: curl/7.65.3
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 172.17.0.1
X-Forwarded-Host: test.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 7e073cb54211
X-Real-Ip: 172.17.0.1
Access the Traefik Dashboard:
Open your web browser and navigate to http://localhost:8080
to access the Traefik dashboard.
This will provide an overview of routers, services, and middlewares.
You can find the complete documentation:
A community support is available at https://community.traefik.io
A collection of contributions around Traefik can be found at https://awesome.traefik.io.