À quoi ça sert ?
Portainer permet de démarrer, arrêter, mettre à jour et inspecter vos conteneurs depuis une interface web, sans ligne de commande. Pratique pour débuter avec Docker.
Pour qui ?
Les débutants qui préfèrent cliquer plutôt que taper des commandes.
Bon à savoir
Portainer contrôle entièrement Docker, donc le serveur : utilisez un mot de passe très solide et la double authentification.
Après l'installation
- Créez le compte administrateur dans les 5 minutes après le démarrage (sinon, redémarrez le conteneur).
Le docker-compose
Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.
# docker-compose.yml : Portainer
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
portainer:
# Le programme à télécharger (l'« image »), avec sa version
image: portainer/portainer-ce:lts
container_name: portainer
# Redémarre tout seul après une panne ou un redémarrage du serveur
restart: unless-stopped
# Empêche un programme piraté de devenir administrateur
security_opt:
- no-new-privileges:true
# Réglages de l'application. Les valeurs ${...} viennent du fichier .env
environment:
TZ: Europe/Paris
# Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
# Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
# Attention : l'accès au socket Docker donne le contrôle de Docker à ce conteneur.
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
# Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
networks:
- traefik
# Indique à Traefik de publier l'application sur https://portainer.mondomaine.fr avec un certificat HTTPS
labels:
- traefik.enable=true
- traefik.http.routers.portainer.rule=Host(`portainer.mondomaine.fr`)
- traefik.http.routers.portainer.entrypoints=websecure
- traefik.http.routers.portainer.tls.certresolver=letsencrypt
- traefik.http.services.portainer.loadbalancer.server.port=9000
# Le réseau du reverse proxy existe déjà : on s'y raccroche
networks:
traefik:
external: true