Aller au contenu
Conteneurs & Orchestration medium

Portainer CE : gérer Docker et Podman visuellement

11 min de lecture

logo portainer

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.

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âcheCLIPortainer
Voir les conteneursdocker psListe avec états colorés
Lire les logsdocker logs -f appOnglet Logs, temps réel
Ouvrir un terminaldocker exec -it app shClic → Console
Déployer un Composedocker compose up -dColler le YAML, cliquer
Gérer plusieurs serveursSSH + commandesUn seul dashboard

Portainer ne remplace pas la CLI — il la complète pour les opérations courantes et la visualisation.

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œudsIllimitéSelon licence

Pour un usage personnel ou en équipe réduite, CE suffit amplement.

Portainer tourne lui-même dans un conteneur. Vous l’installez sur le serveur que vous voulez administrer.

  • Docker ≥ 20.10 ou Podman ≥ 4.0
  • Accès aux ports 9443 (HTTPS) et 8000 (Edge agents, optionnel)
  1. Créer un volume pour les données

    Fenêtre de terminal
    docker volume create portainer_data
  2. 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
  3. Accéder à l’interface

    Ouvrez https://localhost:9443 (acceptez le certificat auto-signé).

Portainer supporte Podman depuis la version 2.16. Quelques différences :

  1. Créer un volume

    Fenêtre de terminal
    podman volume create portainer_data
  2. Activer le socket Podman (si ce n’est pas fait)

    Fenêtre de terminal
    systemctl --user enable --now podman.socket
  3. 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
Fenêtre de terminal
# Docker
docker ps --filter name=portainer
# Podman
podman ps --filter name=portainer

Vous devez voir le conteneur en état Up avec le port 9443 mappé.

Au premier accès, Portainer demande de créer un compte administrateur :

  1. Définir le mot de passe admin

    Minimum 12 caractères. Ce compte aura tous les droits.

  2. Sélectionner l’environnement

    Choisissez “Get Started” pour configurer l’environnement local automatiquement (le Docker/Podman sur lequel Portainer tourne).

  3. Accéder au dashboard

    L’environnement “local” apparaît avec ses conteneurs, images et volumes.

L’interface Portainer s’organise autour de concepts clés :

Vue d’ensemble de l’environnement sélectionné :

  • Nombre de conteneurs (running/stopped)
  • Nombre de stacks, images, volumes, réseaux
  • Santé des services
SectionDescription
HomeListe des environnements connectés
ContainersTous les conteneurs (créer, démarrer, logs, console)
ImagesImages locales, pull depuis registres
VolumesVolumes persistants
NetworksRéseaux Docker/Podman
StacksDéploiements Compose (YAML)
App TemplatesCatalogue d’applications pré-configurées

Un environnement = un hôte Docker, Podman ou cluster Kubernetes. Portainer peut gérer plusieurs environnements depuis une seule instance.

Déployons un serveur nginx pour comprendre le workflow :

  1. Aller dans Containers → Add container

  2. Configurer

    • Name : nginx-demo
    • Image : nginx:alpine
    • Port mapping : Host 8180, Container 80
  3. Cliquer “Deploy the container”

  4. Vérifier

    Ouvrez http://localhost:8180 — vous voyez la page nginx.

Une fois le conteneur créé, cliquez dessus pour accéder à :

ActionDescription
LogsVoir les sorties stdout/stderr en temps réel
ConsoleOuvrir un terminal interactif (sh ou bash)
InspectVoir la configuration JSON complète
StatsCPU, mémoire, réseau en temps réel
Duplicate/EditRecréer avec des paramètres modifiés

Une stack dans Portainer = un fichier docker-compose.yml déployé et géré via l’interface.

  1. Aller dans Stacks → Add stack

  2. Choisir “Web editor”

  3. Nommer la stack (ex: wordpress-demo)

  4. Coller le Compose :

    services:
    wordpress:
    image: wordpress:6-apache
    ports:
    - "8280:80"
    environment:
    WORDPRESS_DB_HOST: db
    WORDPRESS_DB_USER: wp
    WORDPRESS_DB_PASSWORD: secret
    WORDPRESS_DB_NAME: wordpress
    depends_on:
    - db
    db:
    image: mariadb:11
    environment:
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wp
    MYSQL_PASSWORD: secret
    MYSQL_ROOT_PASSWORD: rootsecret
    volumes:
    - db_data:/var/lib/mysql
    volumes:
    db_data:
  5. Cliquer “Deploy the stack”

WordPress est accessible sur http://localhost:8280.

Portainer peut synchroniser une stack avec un dépôt Git :

  1. Stacks → Add stack → Repository

  2. 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é
  3. Activer “Automatic updates” (optionnel)

    • Polling : Portainer vérifie périodiquement le repo
    • Webhook : déploiement déclenché par GitHub/GitLab
  4. Déployer

Les volumes persistent les données au-delà du cycle de vie des conteneurs.

Volumes → Add volume → nommer → créer.

Dans la liste des volumes, cliquez sur Browse. Portainer affiche l’arborescence et permet de :

  • Télécharger des fichiers
  • Uploader des fichiers
  • Supprimer

Portainer centralise plusieurs serveurs depuis une seule interface.

Deux méthodes :

MéthodeDéploiementUsage
Portainer AgentConteneur sur l’hôte distantRecommandé
Socket exposéAPI Docker sur TCPDéconseillé (sécurité)

Sur l’hôte distant :

Fenêtre de terminal
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.7

Dans Portainer :

  1. Home → Add environment → Docker Standalone
  2. Agent → renseigner <ip-distante>:9001
  3. Nommer l’environnement
  4. Connect

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.

Portainer CE permet de créer des utilisateurs avec différents niveaux d’accès.

RôleDroits
AdministratorTous les droits sur Portainer et les environnements
Standard userAccès aux ressources autorisées uniquement

Users → Add user :

  • Nom d’utilisateur
  • Mot de passe (min 12 caractères)
  • Rôle (admin ou standard)

Regroupez les utilisateurs en équipes puis assignez des droits :

  1. Créer une équipe : Users → Teams → Add team
  2. Assigner des utilisateurs à l’équipe
  3. Configurer l’accès par environnement ou par stack

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.

Cause : Le socket Docker n’est pas monté ou n’est pas accessible.

Solution :

Fenêtre de terminal
# Vérifier le montage
docker inspect portainer | grep -A5 Mounts
# Le socket doit exister
ls -la /var/run/docker.sock

Cause : L’agent n’est pas joignable (firewall, port fermé).

Solution :

Fenêtre de terminal
# Tester la connectivité
nc -zv <ip-agent> 9001
# Vérifier que l'agent tourne
docker ps --filter name=portainer-agent

Cause : Le Compose a une erreur de syntaxe ou une image introuvable.

Solution :

  1. Cliquer sur la stack → voir les logs d’erreur
  2. Corriger le YAML
  3. Update the stack
ConceptDescription
Portainer CEInterface web pour Docker/Podman/K8s, gratuite
EnvironnementUn hôte Docker ou cluster géré par Portainer
StackDéploiement Compose géré via l’interface
AgentConteneur pour connecter un hôte distant
GitOpsSync 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.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.