- Modifié
Arck0s Voila mon docker-compose:
version: '2'
services:
portainer:
image: portainer/portainer
container_name: portainer
hostname: portainer
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/username/portainer/data:/data
command: -H unix:///var/run/docker.sock
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:xxx.ndd.fr
- traefik.docker.network=traefik_proxy
- traefik.backend.port=9000
networks:
- traefik_proxytraefik:
image: traefik
container_name: traefik
hostname: traefik
labels:
- traefik.enable=true
- traefik.docker.network=traefik_proxy
- traefik.frontend.rule=Host:yyy.ndd.fr
- traefik.port=9001
command:
--defaultEntryPoints='http,https'
--logLevel=DEBUG
--web
--web.address=:9001
--entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
--entryPoints='Name:https Address::443 TLS'
--acme
--acme.email=moi@mail.com
--acme.storage=/certs/acme.json
--acme.entryPoint=https
--acme.ondemand=false
--acme.onhostrule=true
--acme.httpChallenge.entryPoint=http
--acme.domains="ndd.fr,xxx.ndd.fr,yyy.ndd.fr"
--docker
--docker.domain=traefik
--docker.watch
--docker.exposedbydefault=false
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /home/username/traefik/certs:/certs
- /var/null:/traefik.toml
ports:
- "80:80"
- "443:443"
networks:
- traefik_proxy
Quelques explications:
- 1 docker qui héberge portainer et qui n'a aucun port exposé.
- 1 docker qui héberge traefik qui expose les ports 80 et 443.
La discussion entre les 2 dockers se fait par les labels 'traefik.xxx=yyy'
Au final, l'ensemble des requêtes est transmis a mon docker traefik et mon docker portainer n'est accessible que par l'adresse : xxx.ndd.fr. De plus, l'accès est automatiquement redirigé en HTTPS si la requête initiale est en HTTP.
En espérant que cela t'aide