Intermédiaire ⏱ 15 min de mise en œuvre Mis à jour le 11 août 2026

Gérer ses conteneurs Docker avec Portainer

Gérer Docker en ligne de commande devient vite fastidieux. Portainer vous donne une interface web claire pour piloter vos conteneurs, vos volumes et vos stacks. Voici comment l'installer et le sécuriser.

Portainer simplifie l’administration de Docker grâce à une interface web centralisée. Là où la ligne de commande impose de mémoriser des options, de parcourir des journaux et de manipuler plusieurs fichiers Compose, Portainer permet de visualiser rapidement les conteneurs, les images, les volumes, les réseaux et les stacks d’un serveur.

L’outil convient particulièrement aux développeurs et aux équipes qui hébergent des applications SaaS, des API ou des services d’IA sous forme de conteneurs. Il ne remplace pas Docker et n’altère pas son fonctionnement. Il fournit une couche d’administration graphique au-dessus du moteur existant.

Pour une infrastructure hébergée en France, Portainer peut par exemple être installé sur un VPS TalCloud, à partir de 4,99 € par mois. TalCloud met en avant des serveurs en France, la conformité RGPD, du stockage NVMe, une protection Anti-DDoS Netrix et un support humain.

Prérequis pour installer Portainer

Ce guide suppose que Docker est déjà installé et fonctionnel sur le serveur. Si ce n’est pas le cas, suivez d’abord notre guide installer Docker sur un VPS.

Il faut également disposer :

  • d’un accès SSH au serveur
  • d’un compte autorisé à exécuter des commandes Docker
  • du port TCP 9443 disponible
  • d’un pare-feu configuré pour limiter l’accès à l’interface

Une adresse IP publique ou un nom de domaine facilite l’accès à Portainer. Pour une utilisation en production, un nom de domaine dédié comme portainer.exemple.fr permet ensuite de placer l’interface derrière un reverse proxy.

Installer Portainer avec Docker

Portainer Community Edition peut fonctionner dans un conteneur Docker. Ses données doivent être conservées dans un volume persistant afin de ne pas perdre les comptes, les réglages et les connexions aux environnements lors du remplacement du conteneur.

Créez d’abord le volume :

docker volume create portainer_data

Lancez ensuite Portainer :

docker run -d \
  --name portainer \
  --restart=always \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Cette commande :

  • exécute Portainer en arrière-plan
  • redémarre automatiquement le conteneur après un redémarrage du serveur
  • publie l’interface HTTPS sur le port 9443
  • donne à Portainer accès au moteur Docker local
  • conserve sa configuration dans portainer_data

L’interface devient accessible à l’adresse suivante :

https://ADRESSE_IP_DU_SERVEUR:9443

Portainer utilise initialement un certificat auto-signé. Le navigateur peut donc afficher un avertissement. Cette connexion reste chiffrée, mais l’identité du serveur n’est pas encore validée par une autorité de certification. Un reverse proxy avec un certificat TLS reconnu permettra de supprimer cet avertissement.

Le montage de /var/run/docker.sock accorde des droits très élevés à Portainer. Une personne qui contrôle l’interface peut pratiquement contrôler l’hôte Docker. Il ne faut jamais exposer le socket Docker directement sur Internet.

Premier login et sécurisation

Lors de la première ouverture, Portainer demande de créer le compte administrateur. Choisissez un mot de passe long, unique et stocké dans un gestionnaire de mots de passe. Évitez de réutiliser un mot de passe SSH, Git ou associé à un autre service.

Portainer propose ensuite de connecter un environnement. Pour cette installation, sélectionnez l’environnement Docker local. Les conteneurs déjà présents sur le serveur apparaîtront automatiquement.

Le port historique 9000 correspond à un accès HTTP non chiffré. Ne le publiez pas. La commande précédente expose uniquement le port HTTPS 9443.

Pour renforcer la protection :

  • limitez le port 9443 à votre adresse IP avec le pare-feu UFW
  • créez des comptes nominatifs plutôt que de partager le compte administrateur
  • accordez uniquement les permissions nécessaires
  • désactivez les comptes qui ne sont plus utilisés
  • placez Portainer derrière un reverse proxy avec un certificat TLS valide
  • activez une authentification supplémentaire au niveau du proxy si nécessaire

Si le reverse proxy fonctionne directement sur l’hôte, Portainer peut être lié à l’interface locale :

-p 127.0.0.1:9443:9443

Dans cette configuration, le port n’est plus directement joignable depuis Internet. Le reverse proxy devient le seul point d’entrée public.

Gérer les conteneurs et les images

La section Containers présente l’état de chaque conteneur, son image, son adresse IP, ses ports et son statut. Depuis cette vue, il est possible de démarrer, arrêter, redémarrer, recréer ou supprimer un conteneur.

En ouvrant un conteneur, Portainer donne accès à plusieurs fonctions utiles :

  • consultation des journaux en temps réel
  • affichage des statistiques CPU, mémoire et réseau
  • ouverture d’une console dans le conteneur
  • inspection des variables d’environnement et des montages
  • duplication ou modification de la configuration

La console web est pratique pour un diagnostic ponctuel. Les changements effectués directement dans le système de fichiers d’un conteneur restent toutefois éphémères. Toute modification durable doit passer par une image, un volume ou une stack Compose.

La section Images liste les images téléchargées sur l’hôte. Vous pouvez récupérer une image depuis un registre, supprimer une image inutilisée ou consulter les couches qui la composent. Avant une suppression, vérifiez qu’aucun conteneur actif ou arrêté ne dépend de l’image.

Pour une application sensible, préférez une version explicite telle que application:2.4.1 à un tag flottant comme latest. Les déploiements deviennent plus prévisibles et les retours à une version précédente sont plus simples.

Administrer les volumes et les réseaux

Les volumes conservent les données indépendamment du cycle de vie des conteneurs. Portainer permet de les créer, de vérifier leur utilisation et de les associer à de nouveaux services.

Ils sont adaptés aux bases de données, aux fichiers envoyés par les utilisateurs et aux configurations persistantes. Ne supprimez jamais un volume sans avoir identifié le service qui l’utilise et vérifié l’existence d’une sauvegarde exploitable.

La section Networks permet de créer et inspecter les réseaux Docker. Une application composée de plusieurs services devrait utiliser des réseaux dédiés. Par exemple, une base de données peut rester uniquement sur un réseau interne partagé avec l’API, sans publier son port sur l’hôte.

Cette séparation réduit la surface d’exposition et évite de rendre accessibles des services qui n’ont aucune raison de recevoir des connexions depuis Internet.

Déployer une stack Docker Compose

Une stack Portainer correspond à une application décrite avec la syntaxe Docker Compose. Cette méthode est préférable à la création manuelle de plusieurs conteneurs, car toute la configuration reste regroupée et reproductible.

Dans Portainer, ouvrez Stacks, sélectionnez Add stack, donnez un nom à l’application puis utilisez l’éditeur web. Voici un exemple simple :

services:
  web:
    image: nginx:alpine
    restart: unless-stopped
    ports:
      - "8080:80"
    networks:
      - frontend

networks:
  frontend:
    driver: bridge

Cliquez sur Deploy the stack. Portainer télécharge l’image, crée le réseau et démarre le service. L’application devient accessible sur le port 8080 du serveur.

Pour une stack réelle, les mots de passe, clés API et jetons ne doivent pas être écrits directement dans le fichier Compose. Utilisez les mécanismes de secrets disponibles, des variables protégées ou un gestionnaire de secrets adapté à l’infrastructure.

Portainer peut aussi déployer une stack depuis un dépôt Git. Cette approche permet de versionner le fichier Compose, de relire les changements et de restaurer une configuration connue. Pour une équipe, le dépôt Git devrait rester la source de vérité, Portainer servant principalement au déploiement et à l’observation.

Bonnes pratiques de maintenance

Sauvegardez régulièrement le volume portainer_data, mais aussi les volumes applicatifs. Une sauvegarde de Portainer ne remplace pas celle des bases de données et des fichiers métier.

Avant une mise à jour, consultez les notes de version et sauvegardez les données. Téléchargez ensuite la nouvelle image, supprimez uniquement le conteneur Portainer et recréez-le avec le même volume. Les réglages sont conservés dans portainer_data.

Surveillez également les images obsolètes, les conteneurs arrêtés et les ports publiés. Évitez les conteneurs privilégiés, limitez les montages de l’hôte et n’accordez jamais l’accès au socket Docker à une application qui n’en a pas strictement besoin.

Enfin, publiez Portainer derrière un reverse proxy comme Traefik, Caddy ou Nginx, avec un certificat TLS valide et un contrôle d’accès. La configuration immédiatement exploitable consiste à garder Docker installé, créer portainer_data, lancer Portainer sur le port HTTPS 9443, restreindre ce port au pare-feu puis configurer le reverse proxy.