Déploiement de Portainer CE dans Docker pour la gestion des conteneurs
Niveau : Débutant
Durée : environ 30 minutes
Objectif : À l'issue de ce guide, vous disposerez d'un panneau Portainer CE entièrement configuré, sécurisé par HTTPS et prêt à gérer l'infrastructure Docker de votre serveur. À l'issue de ce guide, vous disposerez d'un panneau Portainer CE entièrement configuré, sécurisé par HTTPS et prêt à gérer l'infrastructure Docker de votre serveur.
Introduction
La conteneurisation basée sur Docker est devenue la norme pour les infrastructures de serveurs, garantissant un déploiement prévisible et une évolutivité efficace des services. Cependant, lorsque l’on exécute des dizaines de conteneurs, leur gestion uniquement via la ligne de commande devient peu pratique. Portainer CE résout ce problème en proposant une interface web conviviale pour l’administration de Docker : il permet d’accéder à tous les conteneurs, à leur état, à leurs journaux et à leurs ressources, et la gestion s’effectue en quelques clics sans perdre le contrôle du système.
Préparation du serveur
Avant l’installation, il est nécessaire de s’assurer que le serveur est prêt pour le déploiement de Portainer. Portainer s’exécute lui-même en tant que conteneur ; il suffit donc d’installer Docker.
Configuration requise :
- Système d’exploitation : toute distribution Linux (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+) utilisée en hébergement.
- Privilèges : accès root ou possibilité d’exécuter des commandes via sudo.
- Configuration matérielle requise : au moins 1 Go de RAM et 10 Go d'espace disque disponible.
- Configuration réseau requise : ports 8000 et 9443 ouverts pour l'accès à Portainer, port 443 pour la configuration du proxy inverse.
Vérification de la disponibilité de Docker
Connectez-vous au serveur via SSH. Commencez par vérifier si Docker est installé et si le démon est en cours d’exécution :
docker --version sudo systemctl status docker
Si la version de Docker s'affiche et que le statut est « actif » (en cours d'exécution), l'étape d'installation de Docker peut être ignorée.
Installation de Docker (si nécessaire)
Sur les nouveaux serveurs, Docker n’est généralement pas présent. Pour l’installer, exécutez le script standard (pour Debian/Ubuntu) :
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker
Pour installer le plugin Docker Compose (s'il n'a pas été installé à l'étape précédente), exécutez :
sudo apt-get install docker-compose-plugin # For Debian/Ubuntu # or sudo dnf install docker-compose-plugin # For CentOS/Rocky Linux
Vérifiez la version de Docker Compose installée :
docker compose version
Déploiement de Portainer CE dans Docker
Il existe deux méthodes principales pour exécuter Portainer : via la commande `docker run` (démarrage rapide) et via le fichier `docker-compose.yml` (pratique pour la gestion des versions de configuration).
Méthode 1 : exécution via `docker run`
Exécutez la commande suivante sur le serveur :
sudo 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
La commande est exécutée via `sudo` car l'utilisateur actuel n'a pas encore été ajouté au groupe `docker`. Si vous prévoyez d'utiliser Docker sans `sudo` par la suite, ajoutez l'utilisateur au groupe `docker` :
sudo usermod -aG docker $USER
Après avoir exécuté la commande, vous devez vous déconnecter puis vous reconnecter, ou redémarrer votre session.
Explication des paramètres :
- -d – Exécute le conteneur en arrière-plan.
- -p 8000:8000 – Redirection de port pour les agents Edge et les tunnels.
- -p 9443:9443 – Redirection de port pour l’interface web sécurisée (HTTPS). Portainer génère automatiquement un certificat SSL auto-signé.
- --name portainer – Attribue un nom significatif au conteneur.
- --restart=always – Politique de redémarrage automatique du conteneur en cas de défaillance ou de redémarrage du serveur.
- -v /var/run/docker.sock:/var/run/docker.sock – Monte le socket Docker à l’intérieur du conteneur Portainer. Cela permet à Portainer d’interagir avec le démon Docker sur l’hôte et de le gérer.
- -v portainer_data:/data – Crée un volume nommé pour stocker les données de Portainer (utilisateurs, paramètres, configurations de connexion).
- portainer/portainer-ce:latest – L'image contenant la dernière version stable de l'édition Community.
Méthode 2 : Exécution via docker-compose
Pour utiliser cette méthode, créez un répertoire et un fichier docker-compose.yml :
mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml
Insérez le contenu suivant :
services: portainer: image: portainer/portainer-ce:latest 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:
Enregistrez le fichier et exécutez la commande :
docker compose up -d
Premier démarrage et configuration de l'interface web
Une fois le conteneur Portainer démarré, il devient accessible via le réseau.
Étape 1. Connexion à l'interface web
Ouvrez un navigateur et rendez-vous à l’adresse :
En raison de l'utilisation d'un certificat auto-signé, le navigateur affichera un avertissement. Ceci est normal lors du premier démarrage. Vous devez accéder au site (par exemple, en cliquant sur « Accepter le risque » ou « Accéder au site »).
En raison de l’utilisation d’un certificat auto-signé, le navigateur affichera un avertissement. Vous devez accéder au site.

Étape 2. Création d'un utilisateur
Sur la page d'inscription, vous devrez indiquer un nom d'utilisateur (il est recommandé d'utiliser « admin ») et définir un mot de passe fort.
Le mot de passe doit être complexe, car il donne un accès complet à la gestion des conteneurs.
Étape 3. Connexion de l'environnement
Une fois l'utilisateur créé, Portainer vous invitera à connecter des environnements. À ce stade, vous pouvez soit connecter Docker local (déjà disponible grâce au socket monté), soit ajouter des environnements distants via le bouton « Ajouter des environnements ».
Les environnements distants sont utiles lorsque vous devez gérer plusieurs serveurs à partir d’une seule interface Portainer : par exemple, pour ajouter des hôtes Docker situés dans différents centres de données ou des serveurs exécutant Kubernetes. La connexion s’effectue via les agents Portainer ou via l’API à l’aide de certificats TLS.
- Sélectionnez l’option « Commencer ». Il s’agit du scénario de base pour un seul serveur.
- Portainer détectera automatiquement le socket Docker local. Il s'affichera sous la mention « local ».
- Cliquez dessus pour terminer la configuration.


La configuration est terminée. Le tableau de bord de Portainer (écran principal) s’ouvrira avec de brèves statistiques sur les conteneurs, les images, les volumes et les réseaux.

Principales fonctionnalités de Portainer
Examinons les principales sections de l'interface utilisées pour les tâches d'administration quotidiennes.
Tableau de bord
L'écran d'accueil qui présente une vue d'ensemble : le nombre de conteneurs en cours d'exécution et arrêtés, le nombre d'images téléchargées. Il vous permet d'évaluer rapidement l'état du serveur.
Conteneurs
- La section centrale de gestion. Affiche la liste de tous les conteneurs.
- Gestion des conteneurs : démarrer, arrêter, redémarrer ou supprimer un conteneur d’un simple clic.
- Journaux : l'onglet « Journaux » permet de consulter les journaux des conteneurs en temps réel.
- Inspection : affiche des informations complètes sur le conteneur au format JSON : variables d'environnement, points de montage, paramètres réseau.
- Statistiques : graphiques de l'utilisation du processeur, de la mémoire et du réseau pour chaque conteneur. Permet de déterminer la consommation de ressources par chaque service.
- Console d'exécution : possibilité d'ouvrir un terminal web à l'intérieur d'un conteneur pour exécuter des commandes.
Stacks
Implémentation de Docker Compose dans l’interface web. Permet de télécharger ou de créer des fichiers YAML directement via le navigateur pour déployer des applications multi-conteneurs.
Images
- Gestion des images Docker.
- Téléchargement : possibilité de télécharger des images (par exemple, nginx:latest ou mysql:8.0) directement depuis l'interface.
- Supprimer : nettoyage des images inutilisées pour libérer de l'espace disque.
Volumes
Gestion des volumes de données persistants. Affiche les volumes existants, leur association aux conteneurs et l'espace qu'ils occupent. D'une importance cruciale pour les bases de données et les données utilisateur.
Réseaux
Permet de créer des réseaux isolés pour l'interaction entre les conteneurs.
Annuler les modifications (suppression de Portainer)
Si vous devez supprimer complètement Portainer et ses données du serveur, procédez comme suit :
1. Arrêtez et supprimez le conteneur Portainer :
sudo docker stop portainer sudo docker rm portainer
2. Supprimez le volume de données de Portainer (attention : cette action est irréversible) :
sudo docker volume rm portainer_data
La suppression du volume portainer_data entraînera la perte irréversible de tous les utilisateurs, paramètres et configurations de Portainer.
3. Supprimez l’image Portainer (facultatif) :
sudo docker rmi portainer/portainer-ce:latest
Sécurité et recommandations
En environnement de production, une configuration de sécurité supplémentaire de Portainer est requise.
Utilisation d'un proxy inverse (Nginx/Apache)
Il est recommandé de configurer un sous-domaine (par exemple, portainer.domain.com) et de faire transiter le trafic via Nginx. Cela permettra :
- L'utilisation d'un certificat SSL valide (gratuit auprès de Let's Encrypt ou payant, par exemple auprès de Sectigo).
- Une journalisation centralisée des accès.
- La possibilité de configurer une authentification supplémentaire.
1. Installation et configuration de Nginx
Installez Nginx :
sudo apt install -y nginx # For Debian/Ubuntu # or sudo dnf install -y nginx # For CentOS/Rocky Linux
Créez un fichier de configuration pour Portainer :
sudo nano /etc/nginx/sites-available/portainer.conf
Ajoutez la configuration suivante, en remplaçant
server { listen 80; server_name <YOUR_DOMAIN>; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Timeouts for long operations proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }
Activez la configuration :
sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/
Vérifiez la configuration de Nginx :
sudo nginx -t
Si la vérification est réussie, redémarrez Nginx :
sudo systemctl restart nginx
2. Configuration du protocole HTTPS (recommandé)
Installez Certbot :
sudo apt install -y certbot python3-certbot-nginx
Obtenir un certificat SSL :
sudo certbot --nginx -d <your_domain></your_domain>
Remplacez
Au cours de l'installation, saisissez votre adresse e-mail, par exemple admin@
Vérifiez le renouvellement automatique du certificat :
sudo systemctl list-timers | grep certbot
Configuration du pare-feu
L'accès direct aux ports de Portainer doit être restreint. N'autorisez l'accès aux ports 8000 et 9443 qu'à partir d'adresses IP de confiance.
Soyez vigilant avec les règles de pare-feu. Une configuration incorrecte pourrait bloquer votre accès au serveur.
Exemple pour UFW :
sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443
Où 192.168.1.0/24 correspond au sous-réseau des adresses IP de confiance.
Mises à jour régulières
Il est recommandé de suivre la publication des nouvelles versions de Portainer et de mettre à jour le conteneur en temps opportun afin d'éliminer les vulnérabilités potentielles.
Vérification du fonctionnement
Pour vérifier que Portainer fonctionne correctement, procédez comme suit.
- Vérification visuelle : dans la section « Conteneurs », assurez-vous que le conteneur Portainer est en état de fonctionnement.
- Création d'un conteneur de test :
- Accédez à la section « Conteneurs », puis cliquez sur le bouton « Ajouter un conteneur ».
- Dans le champ « Nom », indiquez test-nginx.
- Dans le champ « Image », indiquez nginx:alpine.
- Dans la section « Mappage des ports », indiquez le port hôte 8080 et le port du conteneur 80.
- Cliquez sur « Déployer le conteneur ».
- Vérification de l'accessibilité :
- Attendez que le conteneur apparaisse dans la liste avec le statut « En cours d'exécution ».
- Ouvrez un navigateur et rendez-vous à l'adresse http://<VOTRE_ADRESSE_IP>:8080. La page d'accueil de Nginx devrait s'afficher.
- Vérification de la gestion :
- Dans Portainer, repérez le conteneur test-nginx et cliquez sur le bouton « Stop ».
- Actualisez la page Nginx dans le navigateur : l'accès devrait être indisponible.
- Cliquez sur « Démarrer » : l’accès à la page devrait être rétabli.
Dépannage
Problème n° 1 : impossible d'ouvrir l'interface web de Portainer à l'adresse https://:9443
Cause possible : le pare-feu bloque le port 9443.
Solution : vérifiez les règles du pare-feu et assurez-vous que le port est ouvert. Pour UFW : sudo ufw status | grep 9443.
Problème n° 2 : erreur « Impossible de se connecter au démon Docker » lors de l'exécution de commandes Docker.
Cause possible : le démon Docker n'est pas en cours d'exécution, ou l'utilisateur ne dispose pas des autorisations nécessaires.
Solution : Démarrez le démon : `sudo systemctl start docker`. Si vous avez ajouté l’utilisateur au groupe docker, déconnectez-vous puis reconnectez-vous.
Problème n° 3 : le conteneur Portainer ne démarre pas et se ferme immédiatement (statut « exited »).
Cause possible : conflit de port ou image corrompue.
Solution : Vérifiez si le port 9443 est occupé par une autre application : `sudo ss -tulpn | grep 9443`. Essayez de réattribuer le port et redémarrez le conteneur : `sudo docker restart portainer`.
Conclusion
Portainer CE constitue un outil efficace pour la surveillance et la gestion visuelles des conteneurs Docker. La possibilité d’évaluer rapidement l’état des conteneurs, d’analyser les graphiques de consommation des ressources et d’effectuer des opérations courantes sans se connecter via SSH réduit le temps de réponse aux incidents et simplifie l’administration quotidienne.
Cet outil peut s’avérer utile lorsqu’il est nécessaire de fournir un accès limité à la gestion des conteneurs à des développeurs ou à du personnel moins expérimenté, sans leur accorder d’accès direct à la ligne de commande du serveur. Portainer CE est une solution standard pour la visualisation de l’infrastructure de conteneurs et son utilisation est recommandée sur les serveurs.
---
Version du document : 1 .1
Dernière mise à jour : mars 2026
Responsable : Équipe de documentationtechnique