Initial vault setup
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
---
|
||||
title: Portainer
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, docker, container, ui, management, orchestration, monitoring-docker, compose]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/portainer/portainer]
|
||||
---
|
||||
|
||||
# 🐳 Portainer
|
||||
|
||||
> **L'UI web de référence pour gérer Docker, Docker Swarm et Kubernetes** — la plus déployée en self-hosted et en entreprise.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [portainer.io](https://www.portainer.io/) |
|
||||
| **GitHub** | [portainer/portainer](https://github.com/portainer/portainer) |
|
||||
| **License** | Zlib (custom — voir CE vs Business) |
|
||||
| **Langage** | Go (backend) + Angular (UI) |
|
||||
| **Étoiles GitHub** | 37,7k ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-06 |
|
||||
| **Catégorie** | [[cat-docker\|Docker]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Portainer** est une **plateforme de management de conteneurs** qui fournit une interface graphique centralisée pour piloter des environnements Docker (standalone, Swarm, Kubernetes ACI, Nomad). C'est l'outil de loin le plus populaire du domaine : plus de **650 000 utilisateurs** dans le monde, utilisé aussi bien par les homelabs que par les grandes entreprises.
|
||||
|
||||
L'édition **Community Edition (CE)** est **gratuite et open source** (code sous Zlib) et couvre l'essentiel : gestion des conteneurs, images, volumes, réseaux, stacks Compose, registries, utilisateurs locaux. L'édition **Business** (payante, ~150 €/an) ajoute l'authentification SSO (OAuth, SAML, LDAP), les quotas de ressources, la conformité, le support commercial et l'audit avancé.
|
||||
|
||||
- ✅ **Multi-environnements** : Docker standalone, Docker Swarm, K8s, ACI, Nomad
|
||||
- ✅ **Stacks docker-compose** : déploiement direct depuis l'UI (pull + up)
|
||||
- ✅ **Gestion des images, volumes, réseaux, registries**
|
||||
- ✅ **Console web** dans chaque conteneur (exec shell)
|
||||
- ✅ **RBAC basique** (CE) / SSO + quotas (Business)
|
||||
- ✅ **Templates d'apps** (catalogue de stacks préconfigurées)
|
||||
- ✅ **Logs et stats** CPU/RAM par conteneur
|
||||
- ✅ **Agent léger** (portainer-agent) pour manager des hôtes distants
|
||||
|
||||
**Public cible** : **du débutant à l'entreprise**. Pour un homelab, CE suffit largement. Pour une équipe, Business apporte la gouvernance.
|
||||
|
||||
**Alternatives directes** : [[app-dockge]] (plus simple, docker-compose only), [[app-yacht]] (léger, peu maintenu), [[app-arcane]] (moderne, plus jeune), [[app-komodo]] (multi-serveurs).
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:2.21.5
|
||||
container_name: portainer
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer_data:/data
|
||||
ports:
|
||||
- "9443:9443" # UI HTTPS
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.portainer.rule=Host(`portainer.example.com`)"
|
||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.portainer.service=portainer-svc"
|
||||
- "traefik.http.services.portainer-svc.loadbalancer.server.port=9443"
|
||||
- "traefik.http.routers.portainer.middlewares=portainer-strip@docker"
|
||||
- "traefik.http.middlewares.portainer-strip.stripprefix.prefixes=/portainer"
|
||||
|
||||
volumes:
|
||||
portainer_data:
|
||||
```
|
||||
|
||||
> ⚠️ **Pour une meilleure sécurité**, ne montez pas le socket directement : utilisez [[app-docker-socket-proxy]] en amont. Voir section *Sécurité*.
|
||||
|
||||
### Option 2 : Binaires (Linux)
|
||||
|
||||
```bash
|
||||
# Téléchargement direct
|
||||
docker run -d -p 9000:9000 --name portainer --restart=always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data portainer/portainer-ce:latest
|
||||
```
|
||||
|
||||
> Note : l'image `latest` est pratique pour démarrer mais **à éviter en production**. Pinez toujours une version (ex. `:2.21.5`).
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Accéder à l'UI** : `https://portainer.example.com` (HTTPS obligatoire)
|
||||
2. **Créer le compte admin** (12 caractères min depuis 2.21)
|
||||
3. **Sélectionner l'environnement** : `local` (= l'hôte Docker) ou ajouter un agent distant
|
||||
4. **Pour un environnement distant** : déployer `portainer/agent` sur l'hôte cible, récupérer le token
|
||||
5. **Explorer le menu *Home*** : tous vos environnements y sont listés
|
||||
6. **Déployer votre première stack** : *Stacks > Add stack* > coller un `docker-compose.yml`
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
|
||||
- [[app-dockge]] — Plus simple, axé `docker-compose.yml` self-contained
|
||||
- [[app-yacht]] — Interface légère, templating 1-click (peu maintenue)
|
||||
- [[app-arcane]] — UI moderne, Svelte/SvelteKit
|
||||
- [[app-komodo]] — Orchestration multi-serveurs (Rust)
|
||||
- [[app-dockhand]] — Management + orchestration
|
||||
- **Cockpit** (module Podman) — Pour les fans de Red Hat
|
||||
|
||||
### Propriétaires
|
||||
|
||||
- **Docker Desktop** — UI officielle, locale, pas self-hosted
|
||||
- **Rancher** (SUSE) — Plus lourd, orienté K8s enterprise
|
||||
- **Mirantis Kubernetes Engine** — K8s managé avec UI intégrée
|
||||
- **Shipyard** (Triton) — UI legacy SmartOS
|
||||
|
||||
### Tableau comparatif
|
||||
|
||||
| Critère | Portainer CE | Dockge | Yacht | Arcane | Komodo |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| Multi-host | ✅ (via agent) | ❌ | ❌ | ❌ | ✅ (natif) |
|
||||
| K8s | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| Compose-only | ❌ | ✅ | ❌ | ❌ | ✅ |
|
||||
| RBAC / SSO | Basique | ❌ | ❌ | Basique | ✅ |
|
||||
| Prix | Gratuit | Gratuit | Gratuit | Gratuit | Gratuit |
|
||||
| Interface | Classique | Moderne | Légère | Très moderne | Moderne |
|
||||
| Licence | Zlib (CE) | MIT | MIT | Apache-2.0 | GPL-3.0 |
|
||||
|
||||
**Verdict** : **Portainer reste le standard** pour une UI Docker complète et polyvalente. Pour une approche plus *docker-compose-centric*, [[app-dockge]] est souvent préféré par les homelabs qui veulent rester proches du fichier Compose.
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- ⚠️ **Socket Docker = privilèges root** : un conteneur avec `/var/run/docker.sock` peut prendre le contrôle total de l'hôte. **Ne jamais exposer Portainer sur Internet sans auth forte**.
|
||||
- **Mettre en place [[app-docker-socket-proxy]]** (Tecnativa) pour filtrer l'accès au socket (ex : interdire `exec`, `pull`, `push`).
|
||||
- **Forcer HTTPS** (port 9443, jamais 9000) et **placer derrière [[app-traefik]]** avec middleware d'auth (Authelia, Authentik).
|
||||
- **Désactiver l'inscription** : *Settings > Authentication* après la création du 1er admin.
|
||||
- **Mettre à jour régulièrement** : Portainer publie souvent des correctifs de sécurité.
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub portainer/portainer](https://github.com/portainer/portainer)
|
||||
- [Documentation officielle](https://docs.portainer.io/)
|
||||
- [Site commercial Portainer](https://www.portainer.io/)
|
||||
- [Comparaison CE vs Business](https://www.portainer.io/pricing)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-docker]] — Catégorie Docker
|
||||
- [[app-dockge]] — Alternative simple, axée Compose
|
||||
- [[app-yacht]] — Alternative légère
|
||||
- [[app-traefik]] — Reverse proxy recommandé
|
||||
- [[app-docker-socket-proxy]] — Pour sécuriser l'accès au socket
|
||||
- [[recettes-docker-compose]] — Templates Compose
|
||||
- [[securisation-home-lab]] — Durcir l'infra
|
||||
Reference in New Issue
Block a user