👀 Visualiser tout avec Portainer
Portainer est un super outil pour avoir une interface web pour gérer tout à propos de Docker : images, stacks (docker-compose), conteneurs, volumes, réseaux, etc.
On va utiliser traefik comme reverse proxy avec portainer. Sauf que si on met les deux dans le même fichier docker-file, on ne pourra plus gérer traefik avec portainer car il aura été créé en dehors.
On va d'abord créer un réseau traefik pour pouvoir ajouter traefik par après :
sudo docker network create traefik
Donc on va mettre traefik après. Tout d'abord on va créer portainer en version non sécurisée :
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
restart: always
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./portainer_data:/data"
# Une fois que traefik aura été configuré on pourra supprimer cette partie
ports:
# 9000 est le port non sécurisé de portainer (qui va après passer par traefik pour être sécurisé)
- "9000:9000"
labels:
- "traefik.enable=true"
# On va passer les trucs du port 9000 au port 443 pour être sécurisé par traefik avec letsencrypt
# Vous pouvez changer le nom de domaine, le nom de l'entrypoint et le nom du resolver de certificat
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.http.routers.portainer.rule=Host(`votre-nom-de-domaine-ici.net`)"
- "traefik.http.routers.portainer.entrypoints=https"
- "traefik.http.routers.portainer.tls.certresolver=le"
networks:
- traefik
networks:
traefik:
external: true
Après on peut le lancer en faisant :
sudo docker-compose up -d
Ensuite on peut configurer portainer sur son interface à l'addresse http://ip-du-serveur:9000
. Ensuite on peut ajouter traefik en cliquant sur l'environement local puis sur Stack puis sur "Add new stack"
version: '3'
services:
traefik:
image: "traefik:latest"
restart: always
ports:
- "80:80"
- "443:443"
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.http.address=:80"
- "--entrypoints.https.address=:443"
- "--certificatesresolvers.le.acme.httpchallenge=true"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=http"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- traefik
networks:
traefik:
external: true
Une fois cela fait on peut le deployer et normalement portainer devrait être accessible à l'addresse https://votre-nom-de-domaine.net
si c'est bien le cas alors on va pouvoir supprimer l'exposition du port non sécurisé :
# On peut commenter la section "ports" du docker-file d'origine puis le relancer
#ports:
#- "9000:9000"
Et enfin relancer portainer :
sudo docker-compose up -d
Et voilà maintenant portainer est installé et configuré !
No Comments