1º Criar uma rede
sudo docker network create -d bridge ambientes
2º Subir Traefik
# -p 80:80 Porta que acessará os serviços
# -p 8080:8080 Porta de monitoramento
# --network=ambientes Utilizar a rede que criamos
# -v /var/run/docker.sock:/var/run/docker.sock Para enxergar o docker
sudo docker run -d \
--name traefik \
-p 80:80 \
-p 8080:8080 \
--network=ambientes \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik --api --docker --logLevel=DEBUG
3º Acesse http://localhost/ É para dar erro 404
3º Acesse http://localhost:8080 Nenhuma imagem é listada
4º Executemos um serviço para o localhost:80
sudo docker run -d --name w1 --label traefik.frontend.rule=Host:localhost --network=ambientes emilevauge/whoami
Agora acesse http://localhost/ e http://localhost:8080
5º Executemos um serviço para o nginx.localhost:80
sudo docker run -d --name n1 --label traefik.frontend.rule=Host:nginx.localhost --network=ambientes nginx:alpine
Agora acesse http://nginx.localhost e http://localhost:8080
Alternativa com docker compose
version: '3.7'
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker --logLevel=DEBUG # Enables the web UI and tells Træfik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
networks:
- ambientes
networks:
ambientes:
name: ambientes
driver: bridge