Portainer est un tableau de bord web gratuit et self-hosted pour Docker, Swarm et Kubernetes : plutôt que de mémoriser des flags docker run ou de se connecter en SSH pour vérifier ce qui tourne, on obtient une interface navigateur listant chaque conteneur, image, volume et réseau d’un hôte, avec démarrage, arrêt ou redéploiement en un clic. Il tient dans un seul conteneur qui parle au socket Docker, ou à des hôtes distants via son propre agent léger.
Licence : Portainer Community Edition est publié sous licence zlib, vérifiée directement dans le fichier LICENSE du dépôt GitHub portainer/portainer, et non déduite d’un badge : une licence courte et permissive, proche de MIT dans l’esprit.
En bref : site officiel portainer.io · GitHub portainer/portainer, plus de 37 400 étoiles · dernière version 2.39.2 LTS · image Docker portainer/portainer-ce, Verified Publisher, plus d’1 milliard de pulls ; la documentation officielle épingle le tag :lts.
Pourquoi une interface graphique pour Docker ?
La CLI de Docker suffit tant qu’un homelab compte une poignée de conteneurs, mais au-delà, la moitié du modèle mental finit par vivre dans l’historique du shell. La page GitHub de Portainer le présente comme un outil qui simplifie la gestion de Docker et Kubernetes, et c’est globalement vrai en pratique : un coup d’œil suffit pour voir tout ce qui tourne sur un hôte, coller du YAML dans un champ de texte déploie une stack sans passer par SSH, et un colocataire moins à l’aise avec la ligne de commande peut se contenter d’un login plutôt que d’un terminal. Portainer ne remplace pas Docker, seulement la CLI qui se trouve devant.
Ce que Portainer gère réellement
Une seule instance de Portainer Server peut gérer bien plus que l’hôte sur lequel elle tourne. Chaque hôte Docker, cluster Swarm ou cluster Kubernetes auquel elle se connecte forme un environnement, et un seul login peut jongler entre plusieurs d’entre eux grâce à un petit conteneur Portainer Agent installé sur chaque hôte distant. À l’intérieur d’un environnement, Portainer couvre les conteneurs, les images, les volumes, les réseaux, et les Stacks, des fichiers docker-compose déployés directement depuis le navigateur. Community Edition embarque aussi des modèles en un clic pour des applications self-hosted classiques.
Installer Portainer CE avec Docker
Le projet publie une image officielle sur Docker Hub, et la documentation d’installation de Community Edition propose un déploiement en une commande. Commencez par créer le volume de données :
docker volume create portainer_data
Lancez ensuite le conteneur serveur :
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
Pour une installation destinée à durer, utilisez le compose file fourni par Portainer lui-même :
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:lts
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
ports:
- 9443:9443
- 8000:8000 # À retirer si vous ne comptez pas utiliser les Edge Agents
volumes:
portainer_data:
name: portainer_data
networks:
default:
name: portainer_network
docker compose up -d
Dans les deux cas, Portainer devient accessible à l’adresse https://votre-ip-serveur:9443, derrière un certificat auto-signé que votre navigateur va signaler. Le port 8000 ne compte que pour le tunnel Edge Agent, optionnel.
Monter le socket Docker n’est pas une permission anodine. Qui contrôle le conteneur Portainer contrôle de fait l’hôte Docker lui-même, puisque /var/run/docker.sock donne un accès équivalent root à tout ce que Docker peut faire. N’exposez jamais le port de Portainer directement sur internet : placez-le derrière un reverse proxy avec sa propre authentification, ou gardez-le sur le LAN et un VPN comme Tailscale.
Premier lancement : jeton d’installation et assistant d’environnement
- Récupérez le jeton d’installation dans les logs :
docker logs portainer, puis repérez la lignesetup_token=. CE l’exige pour créer le premier compte admin. - Ouvrez https://votre-ip-serveur:9443, collez le jeton, et créez le compte admin. Le nom d’utilisateur par défaut est admin ; le mot de passe doit compter au moins 12 caractères.
- L’assistant d’environnement se lance automatiquement et détecte l’environnement Docker local. Cliquez sur Get Started, ou sur Add Environments d’abord pour ajouter des hôtes distants supplémentaires via l’Agent.
- Depuis le tableau de bord, Containers, Images, Volumes, Networks et Stacks sont chacun accessibles en un clic.
Matériel : Portainer tourne léger : un seul binaire Go, aucune base de données séparée à provisionner, à l’aise sur un Raspberry Pi ou le plus petit VPS de homelab. La charge qu’il ajoute, c’est le tableau de bord lui-même, pas les conteneurs qu’il gère. Notre guide de démarrage homelab pour débutants détaille les compromis matériels.
Cas d’usage en homelab
Le premier réflexe évident, c’est de regrouper tous les conteneurs existants dans un seul tableau de bord au lieu de se souvenir quelle session SSH correspond à quelle machine : les conteneurs de workflow d’Ollama, Open WebUI ou n8n obtiennent chacun une vue de statut et un bouton de redémarrage sans passer par un terminal. Les Stacks transforment aussi Portainer en outil de déploiement : collez un docker-compose.yaml et il démarre sans ouvrir de shell. L’intérêt grandit dès qu’un homelab s’étend sur plus d’une machine : un NAS et un mini PC peuvent tous deux remonter vers un seul login grâce à l’Agent, au lieu de deux consoles séparées. Associez-le à Uptime Kuma, qui surveille les mêmes conteneurs de l’extérieur : l’un les gère, l’autre signale quand l’un d’eux tombe.
Portainer CE face à Business Edition
Le marketing de Portainer pousse la plupart des visiteurs vers Business Edition, gratuite jusqu’à trois nœuds mais qui exige quand même un compte et une clé de licence. Community Edition n’a besoin de rien de tout ça, au prix de fonctionnalités que l’entreprise réserve aux utilisateurs enregistrés :
| Catégorie | Community Edition | Business Edition |
|---|---|---|
| Coût | Gratuit, open source | Gratuit ≤3 nœuds, payant au-delà |
| Compte / clé de licence | Aucun requis | Requis |
| RBAC, LDAP / OAuth / SSO | Non inclus | Inclus |
| Déploiement auto GitOps depuis Git | Non inclus | Inclus |
Le README GitHub de Portainer est transparent sur cette séparation : Business Edition « s’appuie sur la base open source et inclut un éventail de fonctionnalités avancées (comme le RBAC et le support) spécifiques aux besoins des utilisateurs en entreprise ».
Portainer : avantages et inconvénients
- Gratuit et open source sous licence zlib ; Community Edition ne demande ni compte ni clé de licence
- Un seul tableau de bord pour Docker, Swarm et Kubernetes, sur plusieurs hôtes grâce à l’Agent
- Les Stacks transforment les déploiements docker-compose en un copier-coller-cliquer, sans shell
- Nécessite de monter le socket Docker : un accès hôte équivalent root, à ne pas prendre à la légère
- RBAC, SSO et déploiement auto GitOps sont réservés à Business Edition
- Le support Kubernetes est moins abouti que celui de Docker
Des alternatives à connaître
Dockge est ce qui s’approche le plus d’un rival spirituel : un gestionnaire plus léger, limité à docker-compose, conçu par le même développeur qu’Uptime Kuma, dont le README indique que son créateur trouvait les déploiements de Stack de Portainer parfois peu fiables. Sa propre FAQ admet ne pas être un remplacement complet : pas de gestion de conteneur isolé, pas de navigateur de volumes ou de réseaux.
Rancher, chez SUSE, répond à un problème différent : la gouvernance de cluster orientée Kubernetes en priorité, pas un simple hôte Docker, et c’est l’outil le plus lourd des deux.
FAQ
Portainer est-il gratuit ?
Community Edition l’est, entièrement, sous licence zlib et sans compte requis. Business Edition est également gratuite jusqu’à trois nœuds, mais demande un compte et une clé de licence ; au-delà, elle devient payante.
Quel port Portainer utilise-t-il par défaut ?
9443, pour l’interface web HTTPS sur un certificat auto-signé. Le port 8000 est aussi exposé par défaut, pour le tunnel Edge Agent optionnel, et peut être retiré s’il n’est pas utilisé.
Portainer remplace-t-il Docker Compose ?
Non, il vient se poser par-dessus. Les Stacks dans Portainer sont des fichiers docker-compose déployés et gérés depuis l’interface plutôt qu’un terminal ; la syntaxe compose sous-jacente ne change pas.
Portainer mérite sa place dans la plupart des homelabs à la manière d’un bon gestionnaire de fichiers sur un bureau : il ne fait rien que la CLI ne pouvait déjà faire, juste assez vite pour que les gens le fassent réellement. Notre guide de démarrage homelab pour débutants couvre les bases Docker dont il dépend, et si n8n, Ollama ou Open WebUI tournent déjà, Portainer permet en cinq minutes d’arrêter de se connecter en SSH pour vérifier leur état. La catégorie Docker & Containers regroupe le reste des outils du domaine.