Introduction à Portainer
Objectifs du chapitre
- Comprendre ce qu'est Portainer
- Découvrir les fonctionnalités principales
- Comparer les éditions Community et Business
- Identifier les cas d'usage
1 - Qu'est-ce que Portainer ?
Définition
Portainer est une interface graphique web légère pour gérer vos environnements de conteneurs :
- Docker standalone
- Docker Swarm
- Kubernetes
- Azure ACI
- Nomad
┌─────────────────────────────────────────────────────────────┐
│ Portainer Server │
├──────────────────────── ─────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Interface Web │ │
│ │ (Dashboard, Gestion, Monitoring) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Docker │ │ Swarm │ │Kubernetes │ │
│ │Standalone │ │ Cluster │ │ Cluster │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Pourquoi Portainer ?
| Sans Portainer | Avec Portainer |
|---|---|
| Ligne de commande uniquement | Interface graphique intuitive |
| Commandes complexes à mémoriser | Actions en quelques clics |
| Pas de vue d'ensemble | Dashboard centralisé |
| Gestion multi-hôtes complexe | Gestion unifiée |
| Pas de contrôle d'accès natif | RBAC intégré |
2 - Fonctionnalités principales
Gestion des conteneurs
- Créer, démarrer, arrêter, redémarrer
- Voir les logs en temps réel
- Accéder au terminal (exec)
- Inspecter la configuration
- Statistiques de ressources
Gestion des images
- Lister les images locales
- Télécharger depuis des registres
- Construire des images (via Dockerfile)
- Supprimer les images inutilisées
Gestion des volumes et réseaux
- Créer et gérer des volumes
- Configurer les réseaux
- Visualiser les connexions
Stacks et templates
- Déployer des applications Docker Compose
- Utiliser des templates prédéfinis
- Gérer les services Swarm
Administration
- Gestion des utilisateurs
- Contrôle d'accès (RBAC)
- Gestion multi-environnements
- Webhooks et API
3 - Éditions de Portainer
Portainer CE (Community Edition)
Gratuit et open-source
| Fonctionnalité | Disponible |
|---|---|
| Gestion Docker | ✅ |
| Gestion Swarm | ✅ |
| Gestion Kubernetes | ✅ (limité) |
| Multi-environnements | ✅ (3 max) |
| Utilisateurs | ✅ |
| RBAC basique | ✅ |
| Templates | ✅ |
| Support | Communauté |
Portainer BE (Business Edition)
Payant avec fonctionnalités avancées
| Fonctionnalité | Disponible |
|---|---|
| Tout CE + | ✅ |
| Environnements illimités | ✅ |
| RBAC avancé | ✅ |
| Registry management | ✅ |
| OAuth/LDAP | ✅ |
| Audit logs | ✅ |
| Support officiel | ✅ |
Comparaison
┌────────────────────────────────────────────────────────────┐
│ Portainer Editions │
├──────────────────────┬─────────────────────────────────────┤
│ Community (CE) │ Business (BE) │
├─── ───────────────────┼─────────────────────────────────────┤
│ Gratuit │ Payant (par nœud) │
│ Open Source │ Propriétaire │
│ 3 environnements │ Illimité │
│ RBAC basique │ RBAC avancé + OAuth │
│ Support communauté │ Support entreprise │
└──────────────────────┴─────────────────────────────────────┘
4 - Architecture
Composants
┌─────────────────────────────────────────────────────────────┐
│ Navigateur │
│ (Chrome, Firefox...) │
└──────────────────────────┬──────────────────────────────────┘
│ HTTPS (9443)
▼
┌─────────────────────────────────────────────────────────────┐
│ Portainer Server │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Web UI │ │
│ │ (React Frontend) │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ API Backend │ │
│ │ (Go Backend) │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Database (BoltDB) │ │
│ │ /data/portainer.db │ │
│ └─────────────────────────────────────────────────────┘ │
└──────────────────────────┬──────────────────────────────────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Docker │ │ Agent │ │ Agent │
│ Local │ │ (Remote)│ │ (Swarm) │
└─────────┘ └─────────┘ └─────────┘
Modes de connexion
| Mode | Description | Usage |
|---|---|---|
| Local | Socket Docker monté | Développement, single-node |
| Agent | Agent Portainer sur chaque nœud | Multi-hôtes, Swarm |
| Edge Agent | Connexion sortante | Environnements distants/NAT |
5 - Cas d'usage
Développement
- Environnement de dev local
- Tests rapides de conteneurs
- Débogage facilité
Équipes
- Interface accessible aux non-experts CLI
- Gestion des accès par projet
- Onboarding simplifié
Production
- Monitoring centralisé
- Gestion multi-clusters
- Audit et compliance
Formation
- Apprentissage de Docker
- Visualisation des concepts
- Expérimentation sécurisée
6 - Alternatives à Portainer
Comparaison
| Outil | Docker | Swarm | K8s | GUI | Gratuit |
|---|---|---|---|---|---|
| Portainer | ✅ | ✅ | ✅ | ✅ | CE gratuit |
| Rancher | ❌ | ❌ | ✅ | ✅ | ✅ |
| Lens | ❌ | ❌ | ✅ | ✅ | ✅ |
| Docker Desktop | ✅ | ❌ | ✅ | ✅ | Limité |
| Cockpit | ✅ | ❌ | ❌ | ✅ | ✅ |
Pourquoi choisir Portainer ?
- Polyvalent : Docker, Swarm et Kubernetes
- Léger : ~100 Mo, déploiement rapide
- Complet : Gestion complète sans plugins
- Accessible : Interface intuitive
7 - Premiers pas
Déploiement rapide
# Créer le volume de données
docker volume create portainer_data
# Lancer Portainer CE
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:latest
# Accéder à l'interface
# https://localhost:9443
Premier accès
- Ouvrir https://localhost:9443
- Créer le compte administrateur
- Choisir l'environnement (local)
- Explorer le dashboard
Résumé
| Aspect | Description |
|---|---|
| Type | Interface web de gestion |
| Cibles | Docker, Swarm, Kubernetes |
| Éditions | CE (gratuit), BE (payant) |
| Déploiement | Conteneur Docker |
| Port | 9443 (HTTPS) |
Points clés
- Portainer simplifie la gestion des conteneurs
- Interface graphique accessible à tous les niveaux
- Édition Community gratuite pour la plupart des besoins
- Déploiement en moins d'une minute
Exercices pratiques
- Listez 3 avantages de Portainer par rapport à la CLI
- Quelle édition choisir pour une équipe de 5 personnes ?
- Quels sont les modes de connexion disponibles ?
- Déployez Portainer localement et explorez l'interface