![]()
Portainer CE (Community Edition) centralise la gestion de vos conteneurs Docker, Podman et Kubernetes dans une interface web unique. Vous pouvez lancer des conteneurs, déployer des stacks Compose, gérer des volumes et des réseaux — sans taper de commandes.
Pourquoi Portainer ?
Section intitulée « Pourquoi Portainer ? »Docker et Podman s’utilisent en ligne de commande. Pour une gestion quotidienne ou une équipe mixte (devs + ops), une interface graphique accélère le travail :
| Tâche | CLI | Portainer |
|---|---|---|
| Voir les conteneurs | docker ps | Liste avec états colorés |
| Lire les logs | docker logs -f app | Onglet Logs, temps réel |
| Ouvrir un terminal | docker exec -it app sh | Clic → Console |
| Déployer un Compose | docker compose up -d | Coller le YAML, cliquer |
| Gérer plusieurs serveurs | SSH + commandes | Un seul dashboard |
Portainer ne remplace pas la CLI — il la complète pour les opérations courantes et la visualisation.
CE vs Business Edition
Section intitulée « CE vs Business Edition »Portainer existe en deux versions :
| Fonctionnalité | CE (gratuit) | Business Edition |
|---|---|---|
| Docker/Podman/K8s | ✅ | ✅ |
| Stacks Compose | ✅ | ✅ |
| GitOps (auto-update) | ✅ | ✅ |
| Multi-environnements | ✅ | ✅ |
| RBAC avancé | ❌ | ✅ |
| LDAP/AD/OAuth | ❌ | ✅ |
| Support prioritaire | ❌ | ✅ |
| Nombre de nœuds | Illimité | Selon licence |
Pour un usage personnel ou en équipe réduite, CE suffit amplement.
Installation
Section intitulée « Installation »Portainer tourne lui-même dans un conteneur. Vous l’installez sur le serveur que vous voulez administrer.
Prérequis
Section intitulée « Prérequis »- Docker ≥ 20.10 ou Podman ≥ 4.0
- Accès aux ports 9443 (HTTPS) et 8000 (Edge agents, optionnel)
Avec Docker
Section intitulée « Avec Docker »-
Créer un volume pour les données
Fenêtre de terminal docker volume create portainer_data -
Lancer Portainer CE (version LTS)
Fenêtre de terminal docker run -d \--name portainer \--restart=always \-p 9443:9443 \-p 8000:8000 \-v /var/run/docker.sock:/var/run/docker.sock \-v portainer_data:/data \portainer/portainer-ce:2.33.7 -
Accéder à l’interface
Ouvrez https://localhost:9443 (acceptez le certificat auto-signé).
Avec Podman
Section intitulée « Avec Podman »Portainer supporte Podman depuis la version 2.16. Quelques différences :
-
Créer un volume
Fenêtre de terminal podman volume create portainer_data -
Activer le socket Podman (si ce n’est pas fait)
Fenêtre de terminal systemctl --user enable --now podman.socket -
Lancer Portainer
Fenêtre de terminal podman run -d \--name portainer \-p 9443:9443 \-v /run/user/$(id -u)/podman/podman.sock:/var/run/docker.sock:Z \-v portainer_data:/data \docker.io/portainer/portainer-ce:2.33.7
Vérification
Section intitulée « Vérification »# Dockerdocker ps --filter name=portainer
# Podmanpodman ps --filter name=portainerVous devez voir le conteneur en état Up avec le port 9443 mappé.
Configuration initiale
Section intitulée « Configuration initiale »Au premier accès, Portainer demande de créer un compte administrateur :
-
Définir le mot de passe admin
Minimum 12 caractères. Ce compte aura tous les droits.
-
Sélectionner l’environnement
Choisissez “Get Started” pour configurer l’environnement local automatiquement (le Docker/Podman sur lequel Portainer tourne).
-
Accéder au dashboard
L’environnement “local” apparaît avec ses conteneurs, images et volumes.
Comprendre l’interface
Section intitulée « Comprendre l’interface »L’interface Portainer s’organise autour de concepts clés :
Dashboard principal
Section intitulée « Dashboard principal »Vue d’ensemble de l’environnement sélectionné :
- Nombre de conteneurs (running/stopped)
- Nombre de stacks, images, volumes, réseaux
- Santé des services
Menu latéral
Section intitulée « Menu latéral »| Section | Description |
|---|---|
| Home | Liste des environnements connectés |
| Containers | Tous les conteneurs (créer, démarrer, logs, console) |
| Images | Images locales, pull depuis registres |
| Volumes | Volumes persistants |
| Networks | Réseaux Docker/Podman |
| Stacks | Déploiements Compose (YAML) |
| App Templates | Catalogue d’applications pré-configurées |
Environnements
Section intitulée « Environnements »Un environnement = un hôte Docker, Podman ou cluster Kubernetes. Portainer peut gérer plusieurs environnements depuis une seule instance.
Exercice : lancer un conteneur
Section intitulée « Exercice : lancer un conteneur »Déployons un serveur nginx pour comprendre le workflow :
-
Aller dans Containers → Add container
-
Configurer
- Name :
nginx-demo - Image :
nginx:alpine - Port mapping : Host
8180, Container80
- Name :
-
Cliquer “Deploy the container”
-
Vérifier
Ouvrez http://localhost:8180 — vous voyez la page nginx.
docker run -d --name nginx-demo -p 8180:80 nginx:alpineActions disponibles sur un conteneur
Section intitulée « Actions disponibles sur un conteneur »Une fois le conteneur créé, cliquez dessus pour accéder à :
| Action | Description |
|---|---|
| Logs | Voir les sorties stdout/stderr en temps réel |
| Console | Ouvrir un terminal interactif (sh ou bash) |
| Inspect | Voir la configuration JSON complète |
| Stats | CPU, mémoire, réseau en temps réel |
| Duplicate/Edit | Recréer avec des paramètres modifiés |
Déployer une stack (Compose)
Section intitulée « Déployer une stack (Compose) »Une stack dans Portainer = un fichier docker-compose.yml déployé et géré
via l’interface.
Créer une stack via l’éditeur web
Section intitulée « Créer une stack via l’éditeur web »-
Aller dans Stacks → Add stack
-
Choisir “Web editor”
-
Nommer la stack (ex:
wordpress-demo) -
Coller le Compose :
services:wordpress:image: wordpress:6-apacheports:- "8280:80"environment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wpWORDPRESS_DB_PASSWORD: secretWORDPRESS_DB_NAME: wordpressdepends_on:- dbdb:image: mariadb:11environment:MYSQL_DATABASE: wordpressMYSQL_USER: wpMYSQL_PASSWORD: secretMYSQL_ROOT_PASSWORD: rootsecretvolumes:- db_data:/var/lib/mysqlvolumes:db_data: -
Cliquer “Deploy the stack”
WordPress est accessible sur http://localhost:8280.
GitOps : déployer depuis un dépôt Git
Section intitulée « GitOps : déployer depuis un dépôt Git »Portainer peut synchroniser une stack avec un dépôt Git :
-
Stacks → Add stack → Repository
-
Configurer le dépôt
- Repository URL :
https://github.com/user/my-compose - Compose path :
docker-compose.yml(chemin dans le repo) - Authentication : si dépôt privé
- Repository URL :
-
Activer “Automatic updates” (optionnel)
- Polling : Portainer vérifie périodiquement le repo
- Webhook : déploiement déclenché par GitHub/GitLab
-
Déployer
Gestion des volumes
Section intitulée « Gestion des volumes »Les volumes persistent les données au-delà du cycle de vie des conteneurs.
Créer un volume
Section intitulée « Créer un volume »Volumes → Add volume → nommer → créer.
Parcourir le contenu
Section intitulée « Parcourir le contenu »Dans la liste des volumes, cliquez sur Browse. Portainer affiche l’arborescence et permet de :
- Télécharger des fichiers
- Uploader des fichiers
- Supprimer
Gestion multi-environnements
Section intitulée « Gestion multi-environnements »Portainer centralise plusieurs serveurs depuis une seule interface.
Ajouter un environnement Docker distant
Section intitulée « Ajouter un environnement Docker distant »Deux méthodes :
| Méthode | Déploiement | Usage |
|---|---|---|
| Portainer Agent | Conteneur sur l’hôte distant | Recommandé |
| Socket exposé | API Docker sur TCP | Déconseillé (sécurité) |
Avec Portainer Agent
Section intitulée « Avec Portainer Agent »Sur l’hôte distant :
docker run -d \ --name portainer-agent \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/lib/docker/volumes:/var/lib/docker/volumes \ -p 9001:9001 \ portainer/agent:2.33.7Dans Portainer :
- Home → Add environment → Docker Standalone
- Agent → renseigner
<ip-distante>:9001 - Nommer l’environnement
- Connect
Edge Agents
Section intitulée « Edge Agents »Pour les environnements derrière un NAT ou firewall (pas d’accès entrant), Portainer propose les Edge Agents. L’agent établit une connexion sortante vers le serveur Portainer.
Gestion des utilisateurs
Section intitulée « Gestion des utilisateurs »Portainer CE permet de créer des utilisateurs avec différents niveaux d’accès.
Rôles disponibles
Section intitulée « Rôles disponibles »| Rôle | Droits |
|---|---|
| Administrator | Tous les droits sur Portainer et les environnements |
| Standard user | Accès aux ressources autorisées uniquement |
Créer un utilisateur
Section intitulée « Créer un utilisateur »Users → Add user :
- Nom d’utilisateur
- Mot de passe (min 12 caractères)
- Rôle (admin ou standard)
Équipes et contrôle d’accès
Section intitulée « Équipes et contrôle d’accès »Regroupez les utilisateurs en équipes puis assignez des droits :
- Créer une équipe : Users → Teams → Add team
- Assigner des utilisateurs à l’équipe
- Configurer l’accès par environnement ou par stack
Catalogue d’applications (App Templates)
Section intitulée « Catalogue d’applications (App Templates) »Portainer inclut des templates pour déployer rapidement des applications :
- Bases de données (PostgreSQL, MySQL, Redis, MongoDB)
- CMS (WordPress, Ghost)
- Monitoring (Prometheus, Grafana)
- Et plus…
App Templates → Sélectionner → Configurer → Deploy
Vous pouvez également créer vos propres templates ou utiliser des dépôts de templates communautaires.
Erreurs courantes
Section intitulée « Erreurs courantes »”Unable to connect to Docker”
Section intitulée « ”Unable to connect to Docker” »Cause : Le socket Docker n’est pas monté ou n’est pas accessible.
Solution :
# Vérifier le montagedocker inspect portainer | grep -A5 Mounts
# Le socket doit existerls -la /var/run/docker.sock“Timeout” sur un environnement distant
Section intitulée « “Timeout” sur un environnement distant »Cause : L’agent n’est pas joignable (firewall, port fermé).
Solution :
# Tester la connectiviténc -zv <ip-agent> 9001
# Vérifier que l'agent tournedocker ps --filter name=portainer-agentStack en erreur après modification
Section intitulée « Stack en erreur après modification »Cause : Le Compose a une erreur de syntaxe ou une image introuvable.
Solution :
- Cliquer sur la stack → voir les logs d’erreur
- Corriger le YAML
- Update the stack
À retenir
Section intitulée « À retenir »| Concept | Description |
|---|---|
| Portainer CE | Interface web pour Docker/Podman/K8s, gratuite |
| Environnement | Un hôte Docker ou cluster géré par Portainer |
| Stack | Déploiement Compose géré via l’interface |
| Agent | Conteneur pour connecter un hôte distant |
| GitOps | Sync automatique stack ↔ dépôt Git |
En résumé : Portainer simplifie les opérations quotidiennes et centralise la gestion multi-serveurs. La CLI reste indispensable pour le scripting et l’automatisation avancée.