Installer Docker sur un VPS est l'une des premières étapes que franchissent de nombreux administrateurs système et développeurs lors de la mise en place d'un nouveau serveur. Docker permet d'exécuter des applications dans des conteneurs isolés, ce qui garantit cohérence, évolutivité et gestion simplifiée. Dans ce guide complet, vous apprenez pas à pas comment installer Docker sur un VPS, de la préparation de votre serveur jusqu'à l'exécution de votre premier conteneur.

Qu'est-ce que Docker et pourquoi installer Docker sur un VPS ?

Docker est une plateforme open source qui permet d'empaqueter des applications dans des conteneurs. Un conteneur contient tout ce dont une application a besoin pour fonctionner : le code, le runtime, les bibliothèques et les outils système. Cela permet de déplacer facilement des applications entre différents environnements sans problème de compatibilité. Lorsque vous installez Docker sur un VPS, vous accédez à un puissant écosystème pour gérer des applications web.

Avantages de Docker sur un VPS

  • Isolation : chaque application s'exécute dans son propre conteneur sans conflit
  • Cohérence : le même conteneur fonctionne à l'identique en développement, en test et en production
  • Utilisation efficace des ressources : les conteneurs sont plus légers que les machines virtuelles
  • Déploiement rapide : les nouvelles applications sont opérationnelles en quelques secondes
  • Évolutivité simple : dupliquer des conteneurs est facile
  • Gestion des versions : retour simple aux versions précédentes

Configuration requise pour installer Docker sur un VPS

Avant d'installer Docker sur un VPS, votre serveur doit répondre à certaines exigences minimales. Voici un aperçu de ce dont vous avez besoin :

ComposantMinimumRecommandéRemarque
RAM1 Go2+ GoPlus de RAM = plus de conteneurs en même temps
CPU1 cœur2+ cœursProcesseur 64 bits requis
Espace disque10 Go40+ GoSSD fortement recommandé pour les performances
OSUbuntu 22.04+Ubuntu 24.04 LTSDebian, CentOS et AlmaLinux également pris en charge
Noyau3.10+5.x+Les noyaux modernes offrent une meilleure prise en charge des conteneurs

Vous n'avez pas encore de VPS ? Consultez notre guide sur le choix d'un fournisseur de VPS pour sélectionner le bon serveur pour votre environnement Docker.

Étape 1 : préparer le VPS

La première étape de l'installation de Docker sur un VPS consiste à préparer votre serveur. Connectez-vous en SSH et exécutez les tâches préparatoires suivantes. Si vous n'êtes pas encore à l'aise avec SSH, lisez notre guide sur les connexions au serveur.

Mettre à jour le système

Commencez toujours par mettre à jour votre système avec les derniers paquets. Sur Ubuntu/Debian, vous le faites avec apt update et apt upgrade. Vous vous assurez ainsi que tous les correctifs de sécurité sont appliqués et que vous disposez des dernières versions des dépendances.

Installer les paquets nécessaires

Docker a besoin de quelques paquets indispensables pour l'installation. Ce sont des paquets qui permettent d'utiliser des dépôts via HTTPS : apt-transport-https, ca-certificates, curl et gnupg. Ces paquets garantissent un téléchargement sécurisé de Docker depuis le dépôt officiel.

Supprimer les anciennes versions de Docker

Si une ancienne version de Docker est présente sur votre serveur, supprimez-la d'abord. Les anciens paquets s'appellent peut-être docker, docker.io ou docker-engine. Supprimer ces versions évite les conflits avec la nouvelle installation.

Étape 2 : ajouter le dépôt Docker

Docker ne s'installe pas depuis les dépôts Ubuntu/Debian par défaut, mais depuis le dépôt Docker officiel. Cela garantit que vous obtenez toujours la version la plus récente et la plus stable.

Ajouter la clé GPG

Téléchargez la clé GPG officielle de Docker et ajoutez-la à votre système. Cette clé vérifie que les paquets que vous téléchargez sont authentiques et n'ont pas été manipulés. Enregistrez la clé dans /etc/apt/keyrings/ conformément aux bonnes pratiques les plus récentes.

Configurer le dépôt

Ajoutez le dépôt Docker à votre liste de sources. Utilisez pour cela l'architecture de votre système (le plus souvent amd64 pour les serveurs x86_64) et le nom de code de votre version d'Ubuntu/Debian. Après avoir ajouté le dépôt, effectuez à nouveau une mise à jour pour que votre système puisse trouver les nouveaux paquets.

Étape 3 : installer Docker Engine

Maintenant que vous avez configuré le dépôt, vous pouvez installer Docker Engine lui-même. Le processus d'installation de Docker sur un VPS comprend trois paquets : docker-ce (le moteur Docker), docker-ce-cli (l'interface en ligne de commande) et containerd.io (le runtime de conteneurs).

Vérifier l'installation

Après l'installation, vérifiez que Docker fonctionne correctement en demandant la version avec docker --version et en lançant un conteneur de test avec docker run hello-world. Si vous voyez le message hello-world, Docker est installé avec succès sur votre VPS.

Utiliser Docker sans sudo

Par défaut, Docker nécessite les droits root. Pour pouvoir exécuter les commandes Docker sans sudo, ajoutez votre utilisateur au groupe docker. Ensuite, vous devez vous déconnecter puis vous reconnecter pour que la modification prenne effet. Attention : cela donne en pratique à votre utilisateur les droits root via Docker, soyez donc prudent sur les serveurs de production.

Étape 4 : installer Docker Compose

Docker Compose est un outil indispensable qui vous permet de définir et de gérer des applications multi-conteneurs avec un seul fichier de configuration. Lors de l'installation de Docker sur un VPS, Docker Compose est fourni d'office.

Qu'est-ce que Docker Compose ?

Avec Docker Compose, vous définissez toute votre pile applicative dans un fichier docker-compose.yml. Ce fichier décrit les conteneurs dont vous avez besoin, la façon dont ils sont reliés entre eux et la configuration qu'ils utilisent. Avec une seule commande, vous démarrez ensuite tous les conteneurs en même temps.

Installer Docker Compose

La dernière version de Docker Compose (V2) s'installe comme plugin Docker. Dans les installations récentes de Docker, Compose V2 est souvent déjà fourni. Vérifiez-le avec docker compose version. S'il manque, installez le paquet docker-compose-plugin via apt.

Étape 5 : configurer Docker pour la production

Après l'installation de Docker sur un VPS, des étapes de configuration importantes sont nécessaires pour rendre Docker adapté à un usage en production. Les paramètres par défaut ne sont pas toujours optimaux pour un environnement de production.

Configurer la journalisation

Les conteneurs Docker génèrent des journaux qui peuvent croître sans limite par défaut. Configurez la rotation des journaux dans le fichier de configuration du démon Docker (/etc/docker/daemon.json) pour éviter que votre disque ne se remplisse. Définissez une taille maximale de, par exemple, 10 Mo par fichier journal et conservez au maximum 3 fichiers.

Choisir le pilote de stockage

Le pilote de stockage par défaut (overlay2) est le meilleur choix dans la plupart des situations. Vérifiez quel pilote est actif avec docker info. Sur des systèmes plus anciens, un pilote moins efficace peut être utilisé, ce qui a un impact sur les performances.

Configurer le réseau

Docker crée par défaut un réseau bridge. En production, vous voulez souvent créer des réseaux personnalisés qui permettent à vos conteneurs de communiquer de manière contrôlée. Les réseaux personnalisés offrent aussi une résolution DNS automatique entre conteneurs, ce qui simplifie la gestion.

Étape 6 : exécuter votre premier conteneur

Maintenant que Docker est installé et configuré, il est temps d'exécuter votre premier vrai conteneur. Prenons comme exemple le démarrage d'un serveur web Nginx.

Démarrer un conteneur Nginx

La commande docker run démarre un conteneur Nginx. Grâce à l'option -d, le conteneur s'exécute en arrière-plan (mode détaché). Avec l'option -p, vous reliez le port 80 du conteneur au port 80 de votre VPS, afin que le serveur web soit accessible via l'adresse IP de votre serveur. L'option --name donne au conteneur un nom reconnaissable pour une gestion plus simple.

Gérer les conteneurs

Les commandes importantes pour gérer vos conteneurs Docker sont :

  • docker ps : affiche tous les conteneurs en cours d'exécution
  • docker ps -a : affiche tous les conteneurs, y compris ceux à l'arrêt
  • docker stop [nom] : arrête un conteneur
  • docker start [nom] : démarre un conteneur arrêté
  • docker restart [nom] : redémarre un conteneur
  • docker logs [nom] : affiche les journaux d'un conteneur
  • docker exec -it [nom] bash : ouvre un shell dans un conteneur en cours d'exécution

Exemples pratiques de Docker Compose

Vous trouverez ci-dessous des configurations Docker Compose courantes pour des sites web et des applications web.

WordPress avec MySQL

L'une des utilisations les plus populaires est d'exécuter WordPress dans Docker. Avec Docker Compose, vous définissez un conteneur WordPress et un conteneur MySQL qui fonctionnent ensemble. Le conteneur WordPress se connecte automatiquement au conteneur de base de données via le réseau Docker.

Application Node.js

Pour les applications Node.js, vous créez un Dockerfile contenant votre application et ses dépendances, et vous utilisez Docker Compose pour orchestrer l'application avec d'éventuelles bases de données et serveurs de cache.

Reverse proxy avec Nginx

Lorsque vous exécutez plusieurs applications web dans Docker, un reverse proxy est essentiel. Nginx Proxy Manager ou Traefik sont des options populaires qui demandent automatiquement des certificats SSL via Let's Encrypt et acheminent le trafic vers le bon conteneur.

Sécurité de Docker sur votre VPS

Après l'installation de Docker sur un VPS, la sécurité est un point d'attention crucial. Les conteneurs Docker partagent le noyau avec le système hôte, de sorte qu'une faille de sécurité dans Docker peut potentiellement compromettre tout le système.

Bonnes pratiques de sécurité

  • N'exécutez jamais de conteneurs en tant qu'utilisateur root (utilisez USER dans le Dockerfile)
  • Utilisez uniquement des images Docker officielles et de confiance
  • Analysez régulièrement les images à la recherche de vulnérabilités avec des outils comme Trivy
  • Limitez les ressources des conteneurs avec des limites de mémoire et de CPU
  • Utilisez des systèmes de fichiers en lecture seule dans la mesure du possible
  • Gardez toujours Docker lui-même à jour
  • Configurez le pare-feu pour n'ouvrir que les ports nécessaires

Combinez la sécurité de Docker avec les mesures générales de sécurité du serveur décrites dans notre guide sur la sécurisation d'un site web.

Problèmes courants lors de l'installation de Docker sur un VPS

Lors de l'installation de Docker sur un VPS, vous pouvez rencontrer divers problèmes. Voici les plus fréquents et leurs solutions :

Permission denied

Cela se produit lorsque vous exécutez des commandes Docker sans les droits appropriés. Ajoutez votre utilisateur au groupe docker ou utilisez sudo. N'oubliez pas de vous déconnecter puis de vous reconnecter après l'avoir ajouté au groupe.

Conflits de ports

Si un autre service tourne déjà sur un port, Docker ne peut pas l'utiliser. Vérifiez quels ports sont utilisés et choisissez un autre port pour votre conteneur, ou arrêtez le service en conflit.

Espace disque insuffisant

Les images et conteneurs Docker peuvent occuper beaucoup d'espace. Utilisez régulièrement docker system prune pour nettoyer les images, conteneurs et volumes inutilisés. Surveillez activement l'utilisation du disque pour éviter les problèmes.

Résumé et prochaines étapes

Vous avez maintenant installé Docker avec succès et exécuté vos premiers conteneurs. Docker ouvre un monde de possibilités pour gérer des applications web sur votre VPS. Les prochaines étapes possibles sont la mise en place de mises à jour automatiques des conteneurs, la configuration de la supervision avec des outils comme Portainer ou ctop, la mise en œuvre de pipelines CI/CD pour des déploiements automatiques et la découverte de l'orchestration de conteneurs avec Docker Swarm. Avec Docker sur votre VPS, vous êtes prêt à exécuter des applications web modernes de manière efficace, évolutive et maîtrisable. Consultez aussi notre guide sur l'hébergement VPS aux Pays-Bas pour les meilleurs serveurs où exécuter Docker.

Installer Docker sur un VPS : configuration réseau et sécurité

Après l'installation de base de Docker sur votre VPS, une bonne configuration réseau est essentielle. Docker crée par défaut un réseau bridge, mais pour les environnements de production, vous avez besoin de plus de contrôle sur la façon dont les conteneurs communiquent entre eux et avec le monde extérieur.

Types de réseaux Docker expliqués

Type de réseauUtilisationIsolationPerformances
Bridge (par défaut)Conteneurs sur le même hôteBonneBonne
HostPerformances maximales requisesAucuneMeilleure
OverlayMulti-hôte (Docker Swarm)BonneMoyenne
MacvlanConteneurs comme des appareils physiquesComplèteBonne
NoneAucun réseau nécessaireComplèteN/A

Pour la production, créez toujours un réseau bridge défini par l'utilisateur plutôt que le réseau bridge par défaut. Cela offre une résolution DNS automatique entre conteneurs (vous pouvez utiliser les noms de conteneurs comme noms d'hôte) et une meilleure isolation. Utilisez la commande docker network create mijn-netwerk pour créer un nouveau réseau.

Docker Compose pour la production sur votre VPS

Docker Compose est indispensable lorsque vous exécutez plusieurs services sur votre VPS. Avec un seul fichier YAML, vous définissez toute votre pile applicative. Pour l'installation de Docker sur un VPS en production, Docker Compose est la méthode recommandée.

Une pile applicative web typique dans Docker Compose comprend :

  • Reverse proxy : Nginx ou Traefik pour la terminaison SSL et la répartition de charge
  • Application : votre application web dans un ou plusieurs conteneurs
  • Base de données : MySQL, PostgreSQL ou MongoDB dans un conteneur dédié
  • Cache : Redis ou Memcached pour le stockage des sessions et la mise en cache
  • Supervision : Prometheus et Grafana pour la supervision de serveurs

Utilisez toujours des numéros de version précis pour vos images plutôt que le tag latest. Cela évite les mises à jour inattendues qui pourraient casser votre application. Stockez la configuration sensible dans des secrets Docker ou des fichiers d'environnement qui ne figurent pas dans votre dépôt Git.

Sécurité de Docker sur votre VPS : bonnes pratiques

Les conteneurs Docker ne sont pas entièrement isolés du système hôte par défaut. Sans mesures supplémentaires, des vulnérabilités dans les conteneurs peuvent conduire à la compromission de tout votre VPS. Suivez ces bonnes pratiques pour un environnement Docker sûr :

  • N'exécutez pas de conteneurs en tant que root : utilisez la directive USER dans votre Dockerfile pour spécifier un utilisateur non root.
  • Limitez les ressources des conteneurs : définissez des limites de CPU et de mémoire avec --memory et --cpus pour éviter le déni de service.
  • Utilisez des systèmes de fichiers en lecture seule : montez le système de fichiers du conteneur en lecture seule dans la mesure du possible avec l'option --read-only.
  • Analysez les images à la recherche de vulnérabilités : utilisez des outils comme Trivy ou Docker Scout pour détecter les vulnérabilités connues dans vos images.
  • Limitez les capabilities : supprimez les capabilities Linux inutiles avec --cap-drop ALL et n'ajoutez que celles qui sont nécessaires.

N'oubliez pas de sécuriser aussi le VPS sous-jacent. Suivez les étapes de notre checklist de sécurité pour VPS et veillez à avoir un pare-feu correctement configuré. Utilisez des clés SSH plutôt que des mots de passe pour l'accès au serveur et gardez le système d'exploitation à jour avec les derniers correctifs de sécurité.

Installer Docker sur un VPS : journalisation et dépannage

Une gestion efficace des journaux est cruciale lorsque vous installez Docker sur un VPS et l'exploitez en production. Les conteneurs Docker génèrent des journaux essentiels pour déboguer les problèmes, surveiller la santé des applications et détecter les incidents de sécurité.

Par défaut, Docker écrit les journaux dans des fichiers JSON sur l'hôte. Pour les conteneurs qui tournent longtemps, ces fichiers peuvent devenir énormes et remplir votre espace disque. Configurez la rotation des journaux dans la configuration de votre démon Docker en définissant la taille maximale des fichiers et le nombre de fichiers à conserver. Une taille maximale de 10 mégaoctets avec trois fichiers en rotation est une bonne configuration de départ pour la plupart des usages.

Pour les environnements de production avec plusieurs conteneurs, une solution de journalisation centralisée est indispensable. La pile ELK (Elasticsearch, Logstash, Kibana) ou l'alternative plus légère Loki avec Grafana rassemble les journaux de tous les conteneurs en un lieu central. Cela permet de repérer des motifs à travers plusieurs services, ce qui est crucial pour déboguer des architectures de microservices.

Docker sur un VPS : volumes et stockage persistant

Par défaut, les données dans les conteneurs Docker sont éphémères : lorsqu'un conteneur est supprimé, toutes les données disparaissent avec lui. Pour les charges de travail de production sur votre VPS, le stockage persistant via les volumes Docker est essentiel. Les volumes sont gérés par Docker et existent indépendamment des conteneurs. Ils survivent à l'arrêt, au redémarrage et même à la suppression des conteneurs. Utilisez des volumes nommés pour les bases de données et autres services avec état. Faites régulièrement des sauvegardes de vos volumes, de préférence avec un script automatisé qui copie les données vers un emplacement de stockage externe. Les bind mounts sont une alternative où vous associez directement un répertoire du système hôte à un conteneur. C'est pratique pour le développement et les fichiers de configuration, mais les volumes sont préférables pour les données de production grâce à une meilleure isolation et à une meilleure portabilité entre différents hôtes.

Docker sur votre VPS : mises à jour automatiques et maintenance

Maintenir un environnement Docker sur votre VPS demande de l'attention, tant pour Docker lui-même que pour les images que vous utilisez. Les images obsolètes contiennent souvent des vulnérabilités connues qui sont activement exploitées par des attaquants. Une politique de mise à jour structurée est essentielle après l'installation de Docker sur votre VPS.

Automatisez la vérification et la mise à jour des images Docker avec des outils comme Watchtower. Watchtower surveille vos conteneurs en cours d'exécution et les met à jour automatiquement lorsqu'une nouvelle version de l'image utilisée est disponible. Configurez Watchtower pour n'effectuer les mises à jour que pendant des fenêtres de maintenance, par exemple la nuit, quand le trafic sur votre site web est minimal. Pour les environnements de production, une approche plus contrôlée est plus sûre : utilisez un pipeline CI/CD qui teste d'abord les nouvelles images dans un environnement de préproduction avant de les déployer en production.

Nettoyez régulièrement les ressources Docker inutilisées. Les anciennes images, les conteneurs arrêtés et les volumes inutilisés occupent de l'espace disque qui peut s'accumuler progressivement. La commande docker system prune supprime d'un coup toutes les ressources inutilisées, mais utilisez-la avec prudence en production. Planifiez chaque mois une session de maintenance pour nettoyer votre environnement Docker, mettre à jour les images et revoir la configuration.

Docker sur votre VPS : ressources et supports d'apprentissage

Après l'installation de Docker sur votre VPS, il est essentiel de continuer à vous former pour gérer votre environnement de conteneurs de façon professionnelle. La documentation officielle de Docker sur docs.docker.com est le meilleur point de départ, avec des guides détaillés, des tutoriels et du matériel de référence. Les forums de la communauté Docker et le canal Docker sur Stack Overflow apportent des réponses aux problèmes spécifiques que vous rencontrez. Pour approfondir la sécurité des conteneurs et les bonnes pratiques de production, le CIS Docker Benchmark et le NIST Application Container Security Guide sont des sources précieuses, régulièrement mises à jour avec les dernières recommandations. Investissez du temps pour apprendre l'orchestration de conteneurs avec Docker Compose et, à terme, Kubernetes si votre infrastructure grandit.