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 t’apprêtes à 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 lances avec une seule ligne docker run, et la première chose qu’il fait est de revenir en arrière à travers un petit trou dans l’hôte (un fichier socket) et 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 observes est à un clic de supprimer l’interface utilisateur que tu observes.

Sur un VPS où tu paies déjà pour la boîte et es déjà à l’aise avec SSH, Portainer s’intègre proprement sur Docker sans changer le fonctionnement de ce qui se trouve en dessous.

C’est la valeur.

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

Voici comment le mettre en marche, le sécuriser et commencer à voir sa valeur.

Qu’est-ce Que Portainer, Exactement ?

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

Portainer est une interface utilisateur web qui fonctionne comme un conteneur Docker et gère vos autres conteneurs via le socket Docker.

C’est essentiellement une interface frontend basée sur un navigateur pour les mêmes commandes Docker que tu taperai à la main, en plus de la gestion de pile, de l’accès basé sur les rôles (si tu passes à la version supérieure) et d’une vue tableau de bord de la CPU et de la mémoire.

La connexion par socket est ce qui la fait fonctionner. Le lien 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 est la télécommande de l’hôte Docker.

Une chose à garder en tête : tout processus qui peut atteindre /var/run/docker.sock peut effectivement tout exécuter 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 lorsque c’est un conteneur que tu as lancé la semaine dernière et dont tu as oublié que tu avais donné accès au socket.

Traite la liaison de socket comme une capacité privilégiée, et audite chaque autre conteneur qui en veut 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 Possèdes Déjà Docker?

Non. Docker fonctionne bien depuis le terminal, et beaucoup de personnes utilisent quelques conteneurs pendant des années sans jamais installer d’interface utilisateur 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” que de retaper une commande Compose à 23h. 
  • Tu partages l’accès avec quelqu’un qui ne vit pas dans un terminal. 
  • Tu veux déployer des mises à jour de piles depuis un dépôt Git sans écrire un script de déploiement. 

Passe Portainer si :

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

Docker est suffisamment grand public pour que ce ne soit pas une décision marginale. Selon l’Enquête des développeurs de Stack Overflow de 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 de toute technologie suivie par l’enquête. Le projet Portainer a approximativement 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 utilises une application, ferme cet onglet. Tu vas bien. Si tu gères quatre applications auto-hébergées et que tu as recherché, “Que sont encore les logs Docker ?” deux fois ce mois-ci, continue à lire.

Quelle Taille De VPS As-Tu Besoin Pour Exécuter Docker Et Portainer ?

Un VPS de 4 Go gère Portainer ainsi qu’un petit ensemble de conteneurs de projets annexes confortablement.

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

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

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

Chez DreamHost, notre Self-Managed VPS offre quatre paliers de Stack basés sur la RAM (Stack 4, 8, 16 et 32), avec le Stack 4 de niveau d’entrée dimensionné exactement 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, le niveau 4 est la taille où les calculs commencent à être en ta faveur dès le premier jour.

Une Remarque Sur Le Stockage : L’empreinte de stockage de Portainer est minimale — il stocke uniquement sa propre base de données de configuration. Les propres documents de Portainer recommandent 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 ne devient une véritable préoccupation que si vous exécutez des conteneurs lourds en bases de données comme Postgres ou MySQL à côté. Si votre VPS utilise un disque tournant en 2026, l’interface utilisateur de Portainer semblera lente bien avant que la RAM ne le fasse. Notre conseil : mettez à niveau 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.

Il faut 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 le chemin de moindre résistance. Ubuntu est ce que les VPS auto-gérés de DreamHost utilisent par défaut, et la plupart des extraits d’installation Docker et les fils d’aide de la communauté le supposent. Debian et AlmaLinux fonctionnent également, cependant.

Tu n’es pas sûr de la version d’Ubuntu que tu utilises ? Apprends cinq manières 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.

Plutôt, utilise le dépôt apt propre à Docker 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

Lance docker run hello-world.

Si tu ne reçois pas le message « Hello from Docker! », corrige le daemon avant de superposer Portainer dessus.

4. Créer 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 (et non à l’intérieur du conteneur) signifie qu’une mise à niveau de Portainer n’effacera pas ta configuration.

5. Exécuter Portainer Community Edition

Utilise la commande d’installation officielle depuis le document d’installation de Portainer pour Linux:

  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écortiquons cela ligne par ligne :

  • -d l’exécute en mode détaché.
  • -p 9443:9443 est l’interface utilisateur web de Portainer en HTTPS.
  • -p 8000:8000 est le tunnel de l’agent Edge ; tu en as besoin uniquement si tu prévois de connecter des environnements distants (Docker, Swarm, ou Kubernetes) via des agents Edge plus tard, donc inutile sur une installation mono-hôte.
  • --restart=always redémarre Portainer après un reboot.
  • -v indique les drapeaux pour la liaison de socket et le volume persistant de l’étape 4.
  • :lts est le tag du 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.

Cliquez pour passer l’avertissement du 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 A-t-il Juste Expiré Sur Moi ?

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

Verbatim extrait 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éé pendant 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, te donne une autre 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 complètement le minuteur en créant l’utilisateur admin à partir d’un fichier lors de la première exécution. Le document d’installation couvre la syntaxe. Pour une installation VPS ponctuelle, l’astuce de redémarrage est suffisante.

Comment Arrêter Docker De Contourner Ton Pare-feu ?

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

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

Quand tu 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 du conteneur dans la table NAT, ce qui signifie que les paquets sont déviés avant d’atteindre les chaînes INPUT et OUTPUT que UFW utilise.

UFW n’est pas cassé. Il se trouve 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 d’administrateur 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 s’en charge pour vous.) L’outil standard de la communauté pour intégrer UFW dans DOCKER-USER est chaifeng/ufw-docker, qui automatise la génération des règles.

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

J’ai vu cela piéger un ingénieur compétent deux fois dans la même semaine, d’abord sur un ordinateur personnel, puis sur celui d’un client. UFW disait une chose, l’internet public 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 internet public dès que le conteneur démarre. Deux chemins raisonnables : restreindre le 9443 via les règles DOCKER-USER (autoriser uniquement votre IP de domicile ou de bureau), ou le placer derrière un tunnel VPN comme WireGuard pour que l’interface n’ait jamais d’IP publique du tout.

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

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

  • Forcer HTTPS uniquement. Portainer utilise HTTPS par défaut sur le port 9443 mais ne l’impose pas. Active le bouton dans Paramètres pour que l’interface utilisateur refuse entièrement 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 avec 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 modèle recommandé par Portainer. Un 9443 public avec de solides credentials 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 l’installation de Portainer est le jour où tu arrêtes de te connecter en SSH pour redémarrer un conteneur qui fonctionne mal, et où tu commences à cliquer sur un bouton à la place. La plus grande récompense est la gestion de pile.

Une pile 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é sous forme de pile, avec trois principales voies (à l’exclusion des modèles personnalisés) selon la documentation officielle des piles:

  • 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 du stack 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 diriges Portainer vers 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 redéploie automatiquement.

C’est la version auto-hébergée de “déployer au push” sans payer un PaaS pour ce privilège.

Les petites victoires quotidiennes s’accumulent également. Pense à des logs dans un panel au lieu de docker logs -f, des redémarrages en un clic, reconstruire une pile à partir d’un bouton et des graphiques de ressources que tu peux examiner en trois secondes au lieu d’exécuter Docker stats.

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

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, sans exception. L’installation que tu viens de réaliser est entièrement fonctionnelle pour un hôte avec autant de conteneurs que ton VPS peut contenir. Pas de 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 (Prise 3)Gratuite perpétuellementJusqu’à 3Petits homelabs qui désirent 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
EntrepriseDevisIllimitéConformité et besoins 24/7

La version gratuite perpétuelle de trois nœuds (appelée Take 3) vaut la peine d’être connue : tu renouvelles la licence annuellement sans aucun coût tant que tu restes à trois nœuds ou moins.

C’est le plan idéal pour la plupart des laboratoires à domicile et des 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-delà, Business Starter est à 99 $/mo sur la page de tarification commerciale 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 vous gérez de réels nombres de nœuds, avez besoin de RBAC au sein d’une équipe, ou nécessitez 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 commencent à se former autour de lui.

❌ 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 vraie question n’est pas Portainer ou non Portainer. C’est plutôt de savoir si l’auto-hébergement est la bonne décision pour toi — et tu as répondu à cela 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 du navigateur et une surface de contrôle sur tous les autres conteneurs de l’hôte — démarrant et arrêtant des conteneurs, déployant des piles de conteneurs multiples, visualisant des logs, et gérant l’accès utilisateur sans avoir à 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 un terminal ou déploies des mises à jour de pile à partir d’un dépôt Git. Ignore-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 sur le port 9443 par défaut 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 sur une installation à 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 d’installation officielle de Portainer pour Linux.

Quelle quantité de RAM Portainer nécessite-t-il ?

Portainer utilise environ 100 MB en veille avant que tu ne charges quoi que ce soit d’autre. Ajoute quelques centaines de MB pour le démon Docker, puis dimensionne en fonction de ce que tu exécutes réellement.

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

Portainer est-il gratuit ?

Oui. L’édition communautaire de Portainer est totalement gratuite, et l’édition Business a également un niveau 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, le tarif Business commence à 99 $/mo sur 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 gratuite, open-source, et entièrement équipée pour un usage personnel.

Édition Commerciale 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 à 99 $/mois 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 grâce aux Edge Agents, qui s’exécutent 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é de retour pour les commandes de gestion. Pour les auto-hébergeurs sur un seul VPS, cela est excessif. Pour quiconque gère trois boîtes ou plus partageant un plan de contrôle, c’est pour cela que 8000 est 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 trouve devant les chaînes INPUT et OUTPUT de UFW.

Selon la documentation de filtrage de paquets de Docker, “Les paquets sont détournés avant d’atteindre les chaînes INPUT et OUTPUT utilisées par UFW.” 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é