Installation et configuration de Portainer CE
Niveau : Débutant
Temps pour compléter : ~30 minutes
Objectif : À la fin de ce guide, vous aurez un panneau Portainer CE entièrement configuré, sécurisé avec HTTPS et prêt à gérer l'infrastructure Docker de votre serveur.
Introduction
La conteneurisation basée sur Docker est devenue la norme pour l'infrastructure serveur, garantissant un déploiement prévisible et une mise à l'échelle efficace des services. Cependant, lorsque vous exécutez des dizaines de conteneurs, les gérer uniquement via la ligne de commande devient peu pratique. Portainer CE résout ce problème en fournissant une interface web conviviale pour l'administration Docker : il offre un accès à tous les conteneurs, leurs statuts, journaux et ressources, et la gestion se fait 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 lui-même s'exécute en tant que conteneur, donc seul Docker doit être installé.
Exigences du système
- 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 la capacité d'exécuter des commandes via sudo.
- Exigences matérielles : Minimum 1 Go de RAM et 10 Go d'espace disque libre.
- Exigences réseau : Ports ouverts 8000 et 9443 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. Tout d'abord, vérifiez 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 est affichée 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 # Pour Debian/Ubuntu # ou sudo dnf install docker-compose-plugin # Pour 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 principales façons d'exécuter Portainer : via la commande docker run (démarrage rapide) et via 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 plus tard, ajoutez l'utilisateur au groupe docker : sudo usermod -aG docker $USER. Après avoir exécuté la commande, vous devez vous déconnecter et 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 et de gérer le démon Docker sur l'hôte.
- -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 avec la dernière version stable de l'édition communautaire.
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
Lancement initial et configuration de l'interface web
Après le démarrage du conteneur Portainer, il devient accessible sur le réseau.
Étape 1. Connexion à l'interface web
Ouvrez un navigateur et allez à : https://<adresse-IP-du-serveur>:9443.
En raison de l'utilisation d'un certificat auto-signé, le navigateur affichera un avertissement. C'est normal pour la première exécution. Vous devez accéder au site (par exemple, cliquez sur "Accepter le risque" ou "Continuer vers le site").

Étape 2. Création d'un utilisateur
Sur la page d'enregistrement, vous devrez spécifier un nom d'utilisateur (admin est recommandé) 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
Après avoir créé l'utilisateur, Portainer vous invitera à connecter des environnements. À ce stade, vous pouvez soit connecter le Docker local (déjà disponible grâce au socket monté) soit procéder à l'ajout d'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, ajouter des hôtes Docker dans différents centres de données ou des serveurs avec Kubernetes. La connexion se fait via des agents Portainer ou via l'API en utilisant des certificats TLS.
- Sélectionnez l'option "Commencer". C'est le scénario de base pour un seul serveur.

- Portainer détectera automatiquement le socket Docker local. Il sera affiché comme "local".

- Cliquez dessus pour terminer la configuration.
La configuration est terminée. Le tableau de bord de Portainer (écran principal) s'ouvrira avec des statistiques brèves 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 quotidienne.
Tableau de bord
L'écran de démarrage qui affiche l'image globale : le nombre de conteneurs en cours d'exécution et arrêtés, le nombre d'images téléchargées. Permet d'évaluer rapidement l'état du serveur.
Conteneurs
- La section centrale de gestion. Affiche une liste de tous les conteneurs.
- Gestion des conteneurs : Démarrer, arrêter, redémarrer, supprimer un conteneur en un seul clic.
- Journaux : L'onglet "Journaux" permet d'accéder à la visualisation des journaux des conteneurs en temps réel.
- Inspecter : Affiche des informations complètes sur le conteneur au format JSON : variables d'environnement, points de montage, paramètres réseau.
- Statistiques : Graphiques de consommation de CPU, mémoire et réseau pour chaque conteneur. Aide à déterminer la consommation de ressources par services individuels.
- Console Exec : Possibilité d'ouvrir un terminal web à l'intérieur d'un conteneur pour exécuter des commandes.
Piles
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.
- Pull : 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 attachement aux conteneurs et l'espace qu'ils occupent. Critiquement important 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 des conteneurs.
Annuler les modifications (Suppression de Portainer)
Si vous devez supprimer complètement Portainer et ses données du serveur, suivez ces étapes :
1. Arrêter et supprimer le conteneur Portainer :
sudo docker stop portainer sudo docker rm portainer
2. Supprimer le volume de données Portainer (attention : cette action est irréversible) :
sudo docker volume rm portainer_data
La suppression du volume portainer_data entraînera une perte irréversible de tous les utilisateurs, paramètres et configurations de Portainer.
3. Supprimer l'image Portainer (facultatif) :
sudo docker rmi portainer/portainer-ce:latest
Sécurité et recommandations
Pour la 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.domaine.com) et de proxy le trafic via Nginx. Cela fournira :
- L'utilisation d'un certificat SSL valide (gratuit de Let's Encrypt ou un SSL payant, par exemple, de Sectigo).
- Journalisation centralisée des accès.
- Possibilité de configurer une authentification supplémentaire.
1. Installation et configuration de Nginx
Installez Nginx :
sudo apt install -y nginx # Pour Debian/Ubuntu # ou sudo dnf install -y nginx # Pour 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 <YOUR_DOMAIN> par votre domaine qui pointe vers l'IP du serveur :
server { listen 80; server_name
; 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; # Délais pour les opérations longues 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 de HTTPS (recommandé)
Installez Certbot :
sudo apt install -y certbot python3-certbot-nginx
Obtenez un certificat SSL :
sudo certbot --nginx -d
Remplacez <YOUR_DOMAIN> par votre domaine.
Lors de l'installation, entrez votre email, par exemple, admin@<YOUR_DOMAIN>, puis appuyez deux fois sur Y.
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. Autorisez l'accès aux ports 8000 et 9443 uniquement à partir d'adresses IP de confiance.
Faites attention aux règles de pare-feu. Une configuration incorrecte peut 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 est le sous-réseau des adresses IP de confiance.
Mises à jour régulières
Il est recommandé de suivre la sortie des nouvelles versions de Portainer et de mettre à jour le conteneur en temps opportun pour éliminer les vulnérabilités potentielles.
Vérification du fonctionnement
Pour vérifier que Portainer fonctionne correctement, effectuez les actions suivantes.
1. Vérification visuelle : Dans la section "Conteneurs", assurez-vous que le conteneur portainer a un statut en cours d'exécution.
2. Création d'un conteneur de test :
- Allez dans la section "Conteneurs", cliquez sur le bouton "Ajouter un conteneur".
- Dans le champ "Nom", spécifiez test-nginx.
- Dans le champ "Image", spécifiez nginx:alpine.
- Dans la section "Mappage de port", spécifiez le port hôte 8080, le port du conteneur 80.
- Cliquez sur "Déployer le conteneur".
3. Vérification de l'accessibilité :
- Attendez que le conteneur apparaisse dans la liste avec un statut en cours d'exécution.
- Ouvrez un navigateur et allez à
http://<VOTRE_ADRESSE_IP>:8080. La page d'accueil de Nginx devrait s'afficher.
4. Vérification de la gestion :
- Dans Portainer, trouvez le conteneur test-nginx et cliquez sur le bouton "Arrêter".
- 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 1 : Impossible d'ouvrir l'interface web de Portainer à https://<VOTRE_ADRESSE_IP>: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 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 n'a pas les permissions.
Solution : Démarrez le démon : sudo systemctl start docker. Si vous avez ajouté l'utilisateur au groupe docker, déconnectez-vous et reconnectez-vous.
Problème 3 : Le conteneur Portainer ne démarre pas et s'arrête 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éassigner le port et redémarrez le conteneur : sudo docker restart portainer.
Conclusion
Portainer CE fournit un outil efficace pour la surveillance visuelle et la gestion des conteneurs Docker. La capacité d'évaluer rapidement l'état des conteneurs, d'analyser les graphiques de consommation de ressources et d'effectuer des opérations typiques sans se connecter via SSH réduit le temps de réponse aux incidents et simplifie l'administration quotidienne.
Cet outil peut être utile lorsqu'il est nécessaire de fournir un accès limité à la gestion des conteneurs aux développeurs ou au personnel moins expérimenté sans accorder un accès direct à la ligne de commande du serveur. Portainer CE est une solution standard pour la visualisation de l'infrastructure de conteneurs et est recommandé pour une utilisation sur les serveurs.
Version du document : 1.1
Dernière mise à jour : Mars 2026
Propriétaire : Équipe de documentation technique