Informatique
Informatique Linux 18 août 2026 12 min de lecture

Portainer : gérer simplement ses conteneurs Docker sur un homelab

Portainer simplifie l’administration de Docker sur un homelab : interface web, logs en direct, stacks Compose et bonnes pratiques de sécurité pour un serveur qui héberge de nombreux conteneurs.

Interface Portainer affichant le dashboard d'un homelab avec plus de 25 conteneurs Docker actifs

Résumé express

Portainer est une interface web open source qui permet de gérer Docker sans passer par le terminal pour chaque opération. Démarrer, arrêter, consulter des logs, déployer une stack Compose : tout devient accessible en quelques clics. Dans un homelab qui accumule les services, c’est ce qui transforme une infrastructure difficile à suivre en un ensemble lisible et maîtrisé.

  • Besoin couvert : garder une vision claire d’un serveur Docker qui héberge de nombreux conteneurs.
  • Installation : un simple conteneur Docker, opérationnel en moins de cinq minutes.
  • Atout homelab : logs, ressources, volumes, réseaux et stacks Compose depuis une seule interface.
  • Point de vigilance : Portainer a accès au socket Docker, donc à l’hôte. Son accès doit être protégé comme une console d’administration.

Portainer, c’est quoi exactement ?

Docker fonctionne très bien en ligne de commande. Mais dès qu’un serveur héberge plusieurs conteneurs, plusieurs réseaux, des volumes et différentes stacks, garder une vision globale devient plus difficile. Il faut se souvenir des noms de conteneurs, jongler entre plusieurs commandes docker, et ouvrir un terminal pour la moindre vérification.

Portainer répond exactement à ce problème. C’est une application web, elle-même livrée sous forme de conteneur, qui vient se connecter au moteur Docker de l’hôte pour en afficher l’état et permettre son administration depuis un navigateur. Concrètement, depuis Portainer, il est possible de :

  • voir en un coup d’œil les conteneurs actifs, arrêtés ou en erreur ;
  • démarrer, arrêter ou redémarrer un service sans taper la moindre commande ;
  • consulter les journaux (logs) d’un conteneur en temps réel ;
  • suivre la consommation CPU, mémoire et réseau de chaque service ;
  • gérer les images, les volumes et les réseaux Docker ;
  • créer, modifier et redéployer des stacks Docker Compose directement depuis l’interface ;
  • centraliser plusieurs environnements Docker distants derrière un seul tableau de bord.

En résumé, Portainer ne remplace pas Docker : il fournit une couche graphique par-dessus, pensée pour rendre l’administration quotidienne plus rapide et moins sujette à erreur.

Pourquoi Portainer change la donne dans un homelab

Sur un petit serveur avec deux ou trois conteneurs, Portainer n’est pas indispensable : quelques alias bien choisis suffisent largement. Le problème, c’est qu’un homelab ne reste presque jamais à deux ou trois conteneurs bien longtemps.

On commence par un serveur web. Puis un gestionnaire de mots de passe. Puis Home Assistant. Puis un serveur multimédia. Puis une base de données. Puis un outil de monitoring. Puis un reverse proxy. Et sans vraiment s’en rendre compte, la machine héberge plusieurs dizaines de services. Chez Sephy-Lab, notre homelab a dépassé les 25 conteneurs actifs, répartis sur plusieurs stacks. À cette échelle, retenir chaque nom de conteneur et chaque commande devient contre-productif.

Une vision d’ensemble, tout de suite

Plutôt que de reconstituer mentalement l’état du serveur à partir de plusieurs commandes, Portainer affiche directement quels conteneurs tournent, lesquels sont arrêtés et lesquels redémarrent en boucle. Cette vue centralisée fait gagner un temps précieux dès que le nombre de services dépasse ce qu’on peut retenir de tête.

Des logs accessibles en deux clics

Quand un service ne répond plus, le premier réflexe est de consulter ses journaux. En ligne de commande, cela suppose de se souvenir du nom exact du conteneur pour lancer docker logs nom_du_conteneur. Avec Portainer, il suffit d’ouvrir la fiche du conteneur concerné : les logs sont là, avec la possibilité de les suivre en direct.

Les actions courantes sans effort de mémoire

Start, stop, restart, inspect, exec : ce sont les mêmes opérations qui reviennent sans cesse dans l’administration d’un homelab. Les avoir sous forme de boutons plutôt que de commandes à retaper limite les erreurs de frappe, en particulier tard le soir après une longue session de dépannage.

Portainer face aux alternatives

Portainer n’est pas le seul outil du genre. Selon la taille du homelab et le niveau de contrôle recherché, d’autres options existent.

OutilInterfaceMulti-serveursIdéal pour
Docker CLITerminal uniquementOui, via SSHUtilisateurs avancés, scripts et automatisation
Docker DesktopApplication de bureauNon (poste local)Développement sur un poste Windows ou macOS
DockgeWeb, très légèreLimitéPetits homelabs centrés sur des stacks Compose
YachtWeb, minimalisteLimitéAlternative simple à Portainer
Portainer CEWeb, complèteOui, via agentsHomelabs avec de nombreux conteneurs et plusieurs hôtes

Dockge et Yacht restent pertinents pour un homelab qui débute avec quelques stacks. Portainer prend l’avantage dès que le nombre de conteneurs augmente ou que plusieurs serveurs Docker doivent être supervisés depuis un seul endroit.

Avant de commencer

Portainer étant lui-même un conteneur, il n’y a rien à compiler ni à installer manuellement. Le seul prérequis est de disposer d’un serveur avec Docker Engine déjà en place, avec un accès en ligne de commande (SSH suffit très bien).

Installer Portainer

1. Créer un volume pour les données

Ce volume conservera la configuration de Portainer (comptes, environnements connectés, stacks) même si le conteneur est un jour supprimé puis recréé.

docker volume create portainer_data

2. Lancer le conteneur avec Docker CLI

La méthode la plus directe reste un simple docker run :

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:lts

3. Ou via Docker Compose

Sur un homelab qui gère déjà tous ses services avec des fichiers Compose, autant garder Portainer dans la même logique. Un fichier compose.yml minimal suffit :

services:
  portainer:
    image: portainer/portainer-ce:lts
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:
docker compose up -d

Dans les deux cas, un docker ps doit ensuite afficher le conteneur portainer avec le statut Up.

Accéder à l’interface et créer le compte administrateur

Portainer expose son interface en HTTPS sur le port 9443. Depuis un navigateur, direction :

https://ADRESSE-IP-DU-SERVEUR:9443

Par exemple https://192.168.1.100:9443. Le certificat étant auto-signé par défaut, le navigateur affichera un avertissement de sécurité : c’est normal sur un accès local, il suffit d’accepter l’exception pour continuer.

Lors de cette première visite, Portainer demande de créer le compte administrateur : nom d’utilisateur et mot de passe (12 caractères minimum). Une fois cette étape validée, le tableau de bord s’ouvre.

Connecter l’environnement Docker local

Si le socket Docker a bien été monté avec -v /var/run/docker.sock:/var/run/docker.sock, Portainer détecte automatiquement l’environnement Docker local au premier lancement et propose de l’ajouter. Aucun conteneur existant n’a besoin d’être modifié : Portainer se contente d’observer et de piloter ce qui tourne déjà sur l’hôte.

C’est l’un des grands avantages de l’outil : il s’ajoute à une infrastructure Docker existante sans rien casser, et peut tout aussi bien être retiré sans impacter les services qu’il supervisait.

Gérer vos stacks Docker Compose depuis Portainer

C’est sans doute la fonctionnalité la plus utile sur un homelab qui utilise déjà Compose. Un ensemble de services liés (une base de données, une application, un réseau, plusieurs volumes) peut être regroupé dans ce que Portainer appelle une stack, plutôt que d’être géré conteneur par conteneur.

Un fichier Compose classique fonctionne tel quel :

services:
  nginx:
    image: nginx:latest
    ports:
      - "8080:80"

  redis:
    image: redis:latest

Depuis l’onglet Stacks, il suffit de coller ce contenu (ou de le récupérer depuis un dépôt Git) pour que Portainer déploie l’ensemble et permette ensuite de le modifier, le redémarrer ou le supprimer comme un tout cohérent, plutôt que comme des conteneurs isolés. C’est exactement ce type de stack que l’on retrouve derrière une installation comme Nextcloud avec Docker Compose, base de données et cache compris.

Mettre Portainer à jour

Portainer se met à jour comme n’importe quel conteneur : en récupérant la nouvelle image, puis en recréant le conteneur. Le volume portainer_data garantit que rien n’est perdu au passage.

docker pull portainer/portainer-ce:lts
docker stop portainer
docker rm portainer
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:lts

Avec le fichier Compose, un simple docker compose pull && docker compose up -d suffit. Dans les deux cas, mieux vaut planifier ces mises à jour plutôt que de les laisser traîner : Portainer ayant accès au socket Docker, le maintenir à jour fait partie des bonnes pratiques de sécurité, pas seulement du confort.

Sécuriser Portainer : le vrai point d’attention

Il y a une nuance importante à comprendre avant de généraliser Portainer sur un homelab. L’installation classique repose sur /var/run/docker.sock, le socket qui permet à Portainer de communiquer avec Docker. C’est aussi ce qui rend l’outil aussi pratique… et aussi sensible : un accès complet à ce socket équivaut, dans les faits, à un accès complet à l’hôte.

Portainer doit donc être traité comme une console d’administration à part entière, au même titre qu’un accès SSH ou l’interface d’un hyperviseur. Quelques bonnes pratiques limitent nettement les risques :

  • ne jamais exposer Portainer directement sur Internet sans protection supplémentaire ;
  • garder l’accès en HTTPS, y compris en local ;
  • utiliser un mot de passe fort, idéalement avec l’authentification à deux facteurs proposée nativement ;
  • limiter l’accès réseau à l’interface d’administration (VLAN, pare-feu, ou VPN pour un accès distant) ;
  • passer par un reverse proxy si un accès web plus élaboré est nécessaire ;
  • maintenir Portainer et Docker à jour ;
  • créer des comptes utilisateurs distincts avec des rôles limités plutôt que de partager le compte administrateur.

Ces précautions ne sont pas propres à Portainer : elles s’appliquent à tout outil qui a un accès privilégié à l’hôte. Mais elles sont d’autant plus importantes que l’interface est justement conçue pour être simple d’accès.

Portainer chez Sephy-Lab : notre retour d’expérience

Dans notre homelab, Portainer a rapidement trouvé sa place. Avec plus de 25 conteneurs actifs, il est facile d’oublier la complexité qui tourne en arrière-plan tant que tout fonctionne. Le vrai test arrive quand un service tombe, et qu’il faut répondre vite à plusieurs questions : le conteneur tourne-t-il encore ? Depuis combien de temps ? Redémarre-t-il en boucle ? Que disent les logs ? Quelle image est utilisée ? Quels volumes et quel réseau sont concernés ?

Portainer permet de répondre à l’essentiel de ces questions depuis une seule interface, sans reconstruire la commande adéquate à chaque incident. Ce n’est donc pas tant un outil « indispensable pour faire fonctionner Docker » qu’un outil qui rend l’administration quotidienne beaucoup plus confortable, surtout un dimanche soir quand un service refuse de redémarrer.

Portainer est-il indispensable ?

Non, et c’est important de le dire clairement. Docker peut parfaitement être administré entièrement depuis le terminal, et pour certains administrateurs système, la ligne de commande restera toujours la méthode privilégiée : plus rapide à scripter, plus facile à automatiser, sans dépendance à une interface web.

Mais Portainer apporte deux choses que le terminal seul n’offre pas aussi naturellement : la visibilité d’ensemble et l’accessibilité. Pour une personne qui débute avec Docker, l’interface aide à comprendre concrètement ce qui se passe derrière chaque commande. Pour une personne qui gère déjà un homelab conséquent, elle fait surtout gagner du temps, jour après jour.

FAQ

Portainer est-il vraiment gratuit ?

Oui, la Community Edition (CE) est open source et gratuite, y compris pour un usage prolongé sur un homelab. Une édition Business existe également, payante, avec des fonctionnalités supplémentaires (gestion fine des rôles, support, options pensées pour l’entreprise) qui ne sont généralement pas nécessaires pour un usage personnel.

Peut-on gérer plusieurs serveurs Docker depuis un seul Portainer ?

Oui. Un Portainer Agent installé sur chaque serveur distant permet de les rattacher tous à une seule interface centrale. C’est particulièrement utile dès qu’un homelab s’étend sur plusieurs machines physiques ou virtuelles.

Portainer fonctionne-t-il avec Docker Swarm ou Kubernetes ?

Oui, Portainer gère aussi bien des hôtes Docker classiques que des clusters Swarm, et propose une prise en charge de Kubernetes. Pour un homelab, l’usage le plus courant reste toutefois un ou plusieurs hôtes Docker simples, sans orchestrateur.

Que faire si le mot de passe administrateur est oublié ?

Portainer fournit une image utilitaire dédiée à la réinitialisation, à exécuter pendant que le conteneur Portainer est arrêté :

docker stop portainer
docker run --rm -v portainer_data:/data portainer/helper-reset-password
docker start portainer

La commande affiche un mot de passe temporaire à utiliser pour se reconnecter, à changer immédiatement ensuite.

Faut-il exposer Portainer sur Internet ?

Ce n’est pas recommandé sans précautions sérieuses. Un accès local, ou passant par un VPN, reste la solution la plus sûre. Si un accès distant est réellement nécessaire, il doit passer par un reverse proxy avec HTTPS, une authentification forte et, idéalement, une restriction par adresse IP.

Conclusion

Un homelab qui grandit ressemble vite à une petite infrastructure informatique à part entière. Avec plus de 25 conteneurs comme chez Sephy-Lab, l’administration de Docker devient progressivement un travail en soi, et pas seulement un détail technique.

Portainer ne remplace pas Docker et ne dispense pas de le comprendre. En revanche, il offre une interface claire pour visualiser, administrer et dépanner son environnement, tout en restant un outil open source, gratuit dans sa version Community, et suffisamment simple pour être opérationnel en quelques minutes.

Si votre serveur commence à héberger une petite forêt de conteneurs Docker, Portainer a toutes les chances de devenir l’un des outils que vous ouvrez le plus souvent.


Si vous installez Portainer pour la première fois, commencez par un accès strictement local, créez un mot de passe fort dès la première connexion, puis notez la procédure de sauvegarde du volume portainer_data. C’est la meilleure base pour un homelab qui va continuer à grandir.

Intégrer Portainer dans une pile homelab

Portainer prend tout son sens quand il supervise des services que vous avez déjà déployés avec Docker Compose. Pour aller plus loin, vous pouvez rapprocher cette installation des guides sur Nextcloud avec Docker Compose et sur Jellyfin en serveur multimédia homelab, deux stacks que Portainer sait parfaitement piloter au quotidien. Pour sécuriser un accès distant à votre interface, le guide sur Nginx en reverse proxy complète naturellement cette installation.

📡 Soutenir le labo

Sephy-Lab est un projet libre et gratuit. Si tu veux soutenir les expériences et maintenir le système en ligne, tu peux m’aider ici.