Comment Exécuter Docker et Portainer sur un VPS (Guide 2026)

Publié : par Dallas Kashuba
Comment Exécuter Docker et Portainer sur un VPS (Guide 2026) thumbnail

As-tu déjà entendu parler de Dockerception ?

Alors, accroche-toi à ton chapeau. Nous descendons dans le terrier du lapin.

Portainer, l’interface web que tu es sur le point d’installer sur Docker, est lui-même un conteneur Docker.

C’est un outil qui fonctionne sur la chose même qu’il gère. Tu le démarres avec une ligne docker run, et la première chose qu’il fait est de remonter à travers un petit trou dans l’hôte (un fichier socket) et de demander au démon Docker de lui montrer tous les autres conteneurs, y compris lui-même. Depuis cet onglet de navigateur, tu peux mettre à jour Portainer. Redémarrer Portainer. Et gérer tous tes autres conteneurs Docker.

L’interface utilisateur que tu regardes est à un clic de supprimer l’interface utilisateur que tu regardes.

Sur un VPS où tu paies déjà pour le serveur et que tu es déjà à l’aise avec SSH, Portainer s’insère proprement sur Docker sans changer le fonctionnement de ce qui se trouve en dessous.

C’est la valeur.

Une boîte de 4 GB fait fonctionner Docker, Portainer et une petite flotte d’applications auto-hébergées sans forcer. Et cela revient à peu près au coût de quelques abonnements de streaming par mois. Suffisant pour gérer l’automatisation de la maison, le stockage des photos de famille, l’assistant IA et la newsletter que tu menaces de lancer — sur un serveur qui t’appartient réellement.

Voici comment le démarrer, le sécuriser et commencer à en voir la valeur.

Qu’est-ce que Portainer, exactement ?

Architecture de Portainer montrant un socket Docker connectant portainer.io via un VPN au navigateur pour la gestion à distance de Docker.

Portainer est une interface utilisateur web qui s’exécute en tant que conteneur Docker et gère vos autres conteneurs via le socket Docker.

C’est essentiellement une interface utilisateur basée sur navigateur pour les mêmes commandes Docker que tu taperias à la main, en plus de la gestion de piles, de l’accès basé sur les rôles (si tu effectues une mise à niveau) et d’une vue tableau de bord de la CPU et de la mémoire.

La connexion par socket est ce qui permet de faire fonctionner le système. La liaison ressemble à -v /var/run/docker.sock:/var/run/docker.sock dans la commande d’installation, et cette seule ligne fait tout le travail difficile. Sans elle, Portainer est une interface utilisateur pour un hôte Docker vide. Avec elle, Portainer devient la télécommande de l’hôte Docker.

Une chose à garder à l’esprit : tout processus qui peut atteindre /var/run/docker.sock peut effectivement exécuter n’importe quoi en tant que root sur l’hôte. C’est une fonctionnalité lorsque c’est Portainer qui en fait la demande et un problème lorsqu’il s’agit d’un conteneur que tu as lancé la semaine dernière et dont tu as oublié que tu avais donné l’accès au socket.

Traite la liaison de socket comme une capacité privilégiée et audite chaque autre conteneur qui en demande une.

Recevez du contenu directement dans votre boîte de réception

Abonnez-vous maintenant pour recevoir toutes les dernières mises à jour directement dans votre boîte de réception.

As-tu Besoin de Portainer Si Tu As Déjà Docker ?

Non. Docker fonctionne bien depuis le terminal, et beaucoup de personnes exécutent quelques conteneurs pendant des années sans jamais installer d’interface utilisateur par-dessus.

Tu veux Portainer si :

  • Tu jongleras avec plus de deux ou trois conteneurs Docker à travers différentes applications.
  • Tu préfères cliquer sur “redémarrer” plutôt que de retaper une commande Compose à 23 heures.
  • Tu partages l’accès avec quelqu’un qui ne vit pas dans un terminal.
  • Tu veux déployer des mises à jour de pile depuis un dépôt Git sans écrire un script de déploiement.

Omettre Portainer si :

  • Tu utilises un ou deux conteneurs qui changent rarement. 
  • Tu es déjà à l’aise avec Docker Compose, et tu es heureux de continuer ainsi.

Docker lui-même est suffisamment grand public pour que ce ne soit pas une décision marginale. Selon l’enquête des développeurs de Stack Overflow 2025, Docker est la plateforme de conteneurs la plus largement adoptée par les développeurs avec plus de 70 % d’utilisation — le plus grand bond en un an pour une technologie que l’enquête suit. Le projet Portainer a environ 37,000 étoiles sur GitHub.

D’autres options existent. Coolify va plus loin vers les abstractions de style PaaS, et Dokploy se situe dans un territoire similaire avec une empreinte plus légère — mais Portainer est celui que la plupart des guides d’installation choisissent en premier.

Si tu vis dans tmux et que tu exécutes une application, ferme cet onglet. Tu vas bien. Si tu gères quatre applications auto-hébergées et que tu as recherché, “Quels sont les logs Docker encore ?” deux fois ce mois-ci, continue à lire.

Quelle Taille de VPS Est Nécessaire Pour Exécuter Docker et Portainer ?

Un VPS de 4 GB gère Portainer ainsi qu’une petite pile de conteneurs de projets annexes confortablement.

Portainer recommande un hôte avec au moins 2 Go de RAM et 1 cœur de CPU, bien que le processus du serveur Portainer lui-même reste inactif autour de 100 Mo. Le démon Docker ajoute quelques centaines de Mo de surcharge avant que vos applications ne démarrent.

Voici comment cela se traduit dans des charges de travail réelles :

Tableau comparant les exigences de charge de travail VPS : une seule application nécessite 4 GB, Nextcloud nécessite 8 GB, GitLab avec CI/CD nécessite 16 GB RAM.

Chez DreamHost, notre VPS Auto-Géré propose quatre niveaux de Stack basés sur la RAM (Stack 4, 8, 16 et 32), avec le Stack 4 de niveau d’entrée dimensionné précisément pour ce type de petit hôte Docker. (Et oui, le stockage NVMe et l’accès complet root sont inclus.)

Si tu hésites à savoir si l’auto-hébergement vaut le temps, Stack 4 est la taille où les calculs deviennent avantageux dès le premier jour.

Une Remarque Sur Le Stockage : L’empreinte de stockage de Portainer est minimale — il ne stocke que sa propre base de données de configuration. La documentation de Portainer recommande des performances de niveau SSD (≈3,5 MB/s soutenus, plus de 30 000 IOPS, <10ms de latence d’écriture), ce que tout disque NVMe moderne dépasse aisément. Le disque devient vraiment préoccupant seulement si tu exécutes des conteneurs lourds en base de données comme Postgres ou MySQL à côté. Si ton VPS utilise un disque dur en rotation en 2026, l’interface utilisateur de Portainer semblera lente bien avant que la RAM ne le soit. Notre conseil : améliore le disque avant le plan.

Comment Installer Docker Et Portainer Sur Un VPS ?

Formulaire de configuration initiale de Portainer.io pour la création d'un compte administrateur avec nom d'utilisateur, mot de passe nécessitant un minimum de 12 caractères, et collecte de statistiques optionnelle.

Cela prend six étapes, et environ 30 minutes, la plupart du temps à attendre les téléchargements d’images.

1. Choisis une distribution Linux

Ubuntu 22.04 ou 24.04 LTS est la voie de la moindre résistance. Ubuntu est ce que le VPS Auto-Géré de DreamHost utilise par défaut, et la plupart des extraits d’installation Docker et des fils d’aide communautaire le supposent. Debian et AlmaLinux fonctionnent également, cependant.

Tu ne sais pas quelle version d’Ubuntu tu utilises ? Découvre cinq façons de vérifier.

2. Installe Docker depuis le dépôt officiel

Ne apt install docker.io pas. Cela télécharge une version plus ancienne de Docker depuis l’archive Ubuntu.

À la place, utilise Docker avec son propre dépôt apt selon la documentation officielle d’installation de Docker, ce qui ajoute la clé GPG de Docker, le dépôt, et docker-ce ainsi que le plugin Compose en une seule fois.

3. Vérifiez Que Docker Est En Fonctionnement

Exécute docker run hello-world.

Si tu ne reçois pas le message « Hello from Docker! », répare le daemon avant d’ajouter Portainer par-dessus.

4. Créez Un Volume Persistant Pour Les Données De Portainer

Ensuite, exécute docker volume create portainer_data.

Garder la base de données de Portainer sur un volume Docker (pas à l’intérieur du conteneur) signifie qu’une mise à jour de Portainer n’effacera pas ta configuration.

5. Exécuter Portainer Édition Communautaire

Utilise la commande d’installation officielle depuis le document d’installation Linux de 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

Décomposons cela ligne par ligne :

  • -d s’exécute en détaché.
  • -p 9443:9443 est l’interface utilisateur web de Portainer sur HTTPS.
  • -p 8000:8000 est le tunnel de l’Edge Agent ; tu en as besoin uniquement si tu vas connecter des environnements distants (Docker, Swarm ou Kubernetes) via des Edge Agents plus tard, donc inutile pour une installation sur un seul hôte.
  • --restart=always redémarre Portainer après un reboot.
  • -v indique la liaison de socket et le volume persistant de l’étape 4.
  • :lts tag est le canal de support à long terme de Portainer — la version stable recommandée pour la production.

6. Ouvre l’interface utilisateur et crée ton compte administrateur

Oriente ton navigateur vers https://YOUR_VPS_IP:9443.

Clique sur l’avertissement de certificat auto-signé. Tu arriveras sur l’écran de “création de l’utilisateur administrateur initial”. Choisis un nom d’utilisateur qui n’est pas admin, définis un mot de passe fort et sauvegarde-le quelque part de sûr. Et… tu es dedans !

Pourquoi Portainer Vient-il Juste De Me Faire Un Délai D’expiration ?

Parce que Portainer attend exactement cinq minutes pour que quelqu’un le revendique lors de la première installation. Si personne ne le fait, il verrouille la porte.

Texte original tiré de la FAQ de Portainer :

Comme mesure de sécurité, lors de la première installation de Portainer, il attendra 5 minutes pour qu’un utilisateur administrateur soit créé. Si aucun utilisateur n’est créé dans ces 5 minutes, le serveur Portainer cessera d’écouter les demandes.

Traduction : si tu as passé l’étape 5 à faire un sandwich, ton installation refuse maintenant de te parler — et tu n’as rien fait de mal.

La solution est simple. Exécute docker restart portainer.

Cela relance le conteneur, t’offre une nouvelle fenêtre de cinq minutes, et te dépose sur l’écran de création d’administrateur. Répète autant que nécessaire. Bienvenue dans l’auto-hébergement.

Si tu scriptes l’installation pour une flotte (Ansible, Terraform, un pipeline de déploiement), Portainer accepte un drapeau --admin-password-file au démarrage qui contourne entièrement le minuteur en créant l’utilisateur admin à partir d’un fichier lors du premier lancement. Le document d’installation couvre la syntaxe. Pour une installation VPS ponctuelle, l’astuce de redémarrage est suffisante.

Comment Empêcher Docker De Contourner Ton Pare-feu ?

Comparaison de pare-feu Docker : sans la règle DOCKER-USER permet un accès illimité au conteneur, avec la règle DOCKER-USER ajoute une protection par pare-feu.

Celle-ci surprend les gens en production, pas seulement en développement — alors écoute bien.

Quand tu exécutes docker run -p 80:80, le port publié est accessible depuis Internet même si ufw status indique que le port 80 est refusé. Docker achemine le trafic des conteneurs dans la table NAT, ce qui signifie que les paquets sont détournés avant d’atteindre les chaînes INPUT et OUTPUT utilisées par UFW.

UFW n’est pas cassé. Il est simplement dans le mauvais couloir.

La solution que Docker lui-même recommande est la chaîne iptables DOCKER-USER, réservée aux règles administratives afin que Docker ne les écrase pas lors d’un redémarrage. (Les règles ne survivent pas à un redémarrage complet de l’hôte par elles-mêmes — persistez-les avec iptables-persistent ou un service systemd ; ufw-docker gère cela pour vous.) L’outil standard de la communauté pour intégrer UFW à DOCKER-USER est chaifeng/ufw-docker, qui automatise la génération des règles.

Installe-le, puis vérifie avec un scan de ports depuis l’extérieur de ton VPS que les ports que tu penses fermés sont réellement fermés.

J’ai vu cela piéger un ingénieur compétent deux fois la même semaine, d’abord sur une machine personnelle, puis sur celle d’un client. UFW disait une chose, l’internet public en disait une autre, et la vérité était dans iptables.

Pour Portainer spécifiquement, le port 9443 est publié, ce qui signifie que l’interface administrateur est accessible de n’importe où sur l’internet public dès que le conteneur démarre. Deux chemins raisonnables : restreindre le 9443 par des règles DOCKER-USER (autoriser uniquement votre IP à domicile ou de bureau), ou le protéger avec un tunnel VPN comme WireGuard de sorte que l’interface n’ait jamais d’IP publique du tout.

Que Dois-Tu Sécuriser Juste Après La Première Connexion ?

Tu y es. Cinq choses à faire avant de fermer cet onglet de navigateur, selon le guide de sécurité de Portainer :

  • Forcer HTTPS uniquement. Portainer utilise HTTPS sur 9443 par défaut mais ne l’impose pas. Active le basculement dans Paramètres pour que l’interface utilisateur refuse complètement HTTP.
  • Remplacer le certificat auto-signé. Télécharge un certificat que tu as généré, ou place Portainer derrière un proxy inverse NGINX tenant un certificat de Let’s Encrypt. Après le premier jour, cliquer à travers l’avertissement du navigateur à chaque fois est une habitude que tu regretteras.
  • Utilise un vrai nom d’utilisateur admin. “Admin” est la première supposition dans toute tentative de bourrage de credentials. Choisis quelque chose de spécifique pour toi.
  • Restreindre l’interface utilisateur à un VPN. WireGuard est le schéma recommandé par Portainer lui-même. Un 9443 public avec de solides identifiants est acceptable. Un 9443 accessible uniquement sur un réseau privé est mieux.
  • Auditer la liaison du socket Docker. Tout ce qui a accès en lecture à /var/run/docker.sock peut exécuter n’importe quoi en tant que root sur l’hôte. Ne monte pas le socket à la légère dans d’autres conteneurs. Chaque liaison supplémentaire est un nouveau chemin vers l’hôte. Si un conteneur prétend avoir besoin du socket, demande pourquoi — et envisage un proxy de socket si la réponse est “pour la surveillance.”

Comment Utilises-Tu Réellement Portainer Au Quotidien ?

La récompense pour avoir installé Portainer est le jour où tu arrêtes de te connecter en SSH pour redémarrer un conteneur capricieux, et où tu commences à cliquer sur un bouton à la place. La plus grande récompense est la gestion de la pile.

Un stack Portainer est une application multi-conteneurs définie par un fichier Docker Compose. Tout ce que tu peux exprimer comme un docker-compose.yml peut être déployé en tant que stack, avec trois principales voies (à l’exclusion des modèles personnalisés) selon la documentation officielle des stacks:

  • Colle Compose dans l’interface utilisateur
  • Télécharge un fichier Compose
  • Oriente Portainer vers un dépôt Git
Tableau de bord Portainer.io montrant les détails de la pile avec le tableau des conteneurs, les logs, les statistiques et les contrôles de gestion pour les conteneurs Docker.

Le chemin Git est celui qui compte. Tu indiques à Portainer un dépôt public ou authentifié et un chemin vers docker-compose.yml. Portainer interroge soit le dépôt selon un calendrier (par défaut toutes les cinq minutes), soit attend un webhook de GitHub. Lorsque le fichier Compose change en amont, Portainer le récupère et le redéploie automatiquement.

C’est la version auto-hébergée de “déploiement à la poussée” sans payer un PaaS pour le privilège.

Les petites victoires quotidiennes s’additionnent également. Pense aux logs dans un panel au lieu de docker logs -f, redémarrages en un clic, reconstruction d’une pile à partir d’un bouton, et graphiques de ressources que tu peux scanner en trois secondes au lieu de lancer Docker stats.

Portainer prend également en charge les hôtes Docker distants via son Agent Edge, ce qui permet à un assistant AI auto-hébergé ou à un serveur média de se déployer sur plusieurs boîtes.

Quel Est Le Coût De Portainer ? (Et Quand Le Gratuit Cesse-t-il D’être Gratuit ?)

L’édition communautaire de Portainer est gratuite et illimitée, point final. L’installation que tu viens de réaliser est totalement équipée pour un hôte avec autant de conteneurs que ton VPS peut contenir. Aucune limite de nœuds, pas d’expiration, pas d’écrans de rappel.

ÉditionCoûtNœudsIdéal pour
Édition CommunautaireGratuite, open-sourceIllimitéProjets personnels, homelab, auto-hébergement sur un seul VPS
Édition Business (Prendre 3)Gratuite perpétuellementJusqu’à 3Petits homelabs qui souhaitent RBAC et journaux d’audit
Business StarterÀ partir de 99 $/mo5, 10, ou 15Petites équipes gérant une infrastructure réelle
Business ScaleÀ partir de 199 $/moJusqu’à 25Équipes en croissance nécessitant un support 9×5
EntrepriseSur devisIllimitéConformité et besoins 24/7

Le palier gratuit perpétuel de trois nœuds (appelé Take 3) mérite d’être connu : tu renouvelles la licence annuellement sans frais tant que tu restes à trois nœuds ou moins.

C’est le plan idéal pour la plupart des laboratoires à domicile et petites équipes qui souhaitent un contrôle d’accès basé sur les rôles (RBAC), des journaux d’audit et des journaux d’activité sans payer. Au-dessus de cela, Business Starter est à 99 $/mo sur la page de tarification business de Portainer pour 5/10/15 nœuds ; Scale est à 199 $/mo jusqu’à 25 nœuds ; et Enterprise est sur devis.

Pour presque tout le monde qui lit ceci, le meilleur choix est l’édition communautaire. Elle servira un auto-hébergement sur un seul VPS pour la durée de vie de la boîte. Les éditions Business ne justifient leur coût que lorsque tu gères de véritables nombres de nœuds, as besoin de RBAC au sein d’une équipe, ou nécessites un support commercial pour la conformité.

Devrais-Tu Ajouter Portainer Ou Le Passer?

Voici la réponse honnête en deux phrases :

✅ Si tu prévois de partager ce serveur, de déployer depuis Git ou d’exécuter plus de trois conteneurs dans l’année à venir, installe Portainer pendant que l’hôte est neuf et que tes habitudes se forment autour de celui-ci.

❌ Si tu fais fonctionner une application silencieuse et que tu es à l’aise dans le terminal, l’interface utilisateur que tu n’as pas installée ne te manquera pas.

La véritable question n’est pas Portainer contre pas de Portainer. C’est plutôt si l’auto-hébergement est la bonne décision pour toi — et tu y as répondu en ouvrant cet onglet.

Un VPS de 4 Go, Docker et Portainer CE t’emmènent plus loin que ce que la plupart des gens imaginent — une pile d’automatisation, un serveur de photos, une plateforme de newsletter et un assistant IA local — pour moins que ce que tu paies probablement pour deux services de streaming que tu regardes à peine.

Ce n’est pas une mauvaise affaire pour une boîte que tu possèdes réellement.

Questions Fréquemment Posées Sur Docker Et Portainer

À quoi sert Portainer ?

Portainer est utilisé pour gérer les conteneurs Docker, Docker Swarm et Kubernetes via une interface web. Il fonctionne comme un conteneur Docker lui-même, se connecte au socket Docker de l’hôte et te donne une vue dans le navigateur et une surface de contrôle sur tous les autres conteneurs de l’hôte — démarrer et arrêter les conteneurs, déployer des piles multi-conteneurs, voir les logs et gérer l’accès utilisateur sans avoir besoin de se connecter via SSH.

Ai-je besoin de Portainer si j’ai Docker ?

Non, tu n’as pas besoin de Portainer pour utiliser Docker. Docker fonctionne entièrement depuis le terminal, et de nombreux auto-hébergeurs n’installent jamais d’interface utilisateur par-dessus.

Portainer prouve son utilité lorsque tu jongles avec plus de deux ou trois conteneurs, partages l’accès avec quelqu’un qui n’utilise pas constamment un terminal, ou déploies des mises à jour de pile depuis un dépôt Git. Omettez-le si tu gères un ou deux conteneurs stables et que tu es à l’aise avec Docker Compose.

Sur quel port fonctionne Portainer ?

Portainer fonctionne par défaut sur le port 9443 pour l’accès HTTPS à l’interface web, ainsi que sur le port 8000 pour le tunnel de l’Edge Agent si tu connectes des hôtes Docker distants plus tard. Le port 8000 est facultatif lors d’une installation sur un seul hôte ; tu peux supprimer le drapeau -p 8000:8000 de la commande d’installation sans affecter l’interface locale. Les valeurs par défaut proviennent directement de la documentation officielle d’installation de Portainer pour Linux.

Combien de RAM Portainer nécessite-t-il ?

Portainer consomme environ 100 MB à l’idle avant de charger quoi que ce soit d’autre. Ajoutez quelques centaines de MB pour le daemon Docker, puis dimensionnez en fonction de ce que vous exécutez réellement.

Chez DreamHost, nous dimensionnons notre VPS Auto-Géré d’entrée de gamme à 4 GB de RAM pour exactement ce type de charge de travail — assez de marge pour Portainer plus une petite pile de conteneurs de projets annexes comme Ghost, n8n, une base de données Postgres et un reverse proxy.

Portainer est-il gratuit?

Oui. L’édition communautaire de Portainer est totalement gratuite, et l’édition Business propose également un palier gratuit perpétuel de 3 nœuds appelé Take 3, qui se renouvelle annuellement sans coût tant que tu restes à trois nœuds ou moins. Au-delà de trois nœuds, les prix de l’édition Business commencent à partir de 99 $/mo pour le plan Starter par la page de tarification business de Portainer.

Quelle est la différence entre Portainer CE et l’édition Business ?

Portainer Community Edition est gratuit, open-source, et entièrement équipé pour un usage personnel.

Édition Business ajoute le contrôle d’accès basé sur les rôles, les journaux d’audit, l’enregistrement des activités et le support commercial, et commence à partir de 99 $/mo pour 5 nœuds après le niveau gratuit perpétuel de 3 nœuds Take 3.

Portainer Peut-Il Gérer Plusieurs Hôtes Docker ?

Oui, Portainer peut gérer plusieurs hôtes Docker via des agents Edge, qui fonctionnent sur chaque hôte distant et interrogent le serveur central de Portainer sur le port de l’interface utilisateur, le port 8000 étant utilisé pour ouvrir un tunnel sécurisé pour les commandes de gestion. Pour les auto-hébergeurs sur un seul VPS, c’est excessif. Pour quiconque gère trois boîtes ou plus qui partagent un plan de contrôle, c’est pourquoi le 8000 figure dans la ligne d’installation.

Docker contourne-t-il UFW sur un VPS ?

Oui, Docker contourne UFW par défaut car Docker gère le trafic des conteneurs au niveau de la couche NAT iptables, qui se situe devant les chaînes INPUT et OUTPUT de UFW.

Selon la documentation sur le filtrage de paquets de Docker, « Les paquets sont détournés avant d’atteindre les chaînes INPUT et OUTPUT que UFW utilise. » La solution est la chaîne iptables DOCKER-USER, et l’outil standard de la communauté pour intégrer UFW est chaifeng/ufw-docker.

Self-Managed VPS

Maîtrisez toute votre stack. Applications, IA, bases de données et plus encore.

Gardez chaque identifiant et chaque conversation sur un serveur que vous contrôlez, avec la vitesse NVMe et une bande passante illimitée intégrées.

Découvrez les forfaits VPS autogéré