Installer Docker sur un VPS vous permet d’exécuter vos applications dans des environnements isolés et faciles à déployer, sans dépendre d’une configuration locale complexe. Pour une PME, un indépendant ou une agence au Maroc, cette approche simplifie l’hébergement de sites, d’API et d’outils internes.
Vous pouvez installer Docker sur votre VPS en sécurisant l’accès SSH, en configurant le serveur, puis en vérifiant le fonctionnement avec un conteneur de test. Vous découvrirez les commandes adaptées à une distribution Linux courante, ainsi que les contrôles essentiels pour éviter les erreurs de permission et de configuration.
Points clés
- Vous sécurisez l’accès à votre VPS avant l’installation.
- Vous installez Docker avec une méthode fiable et vérifiez son fonctionnement.
- Vous disposez de repères pour résoudre les problèmes courants.
Préparer le serveur et sécuriser les accès
Choisissez une distribution stable, appliquez les mises à jour avant toute installation et utilisez un compte administrateur distinct de root. Limitez ensuite les ports exposés à Internet afin de réduire les accès inutiles à votre VPS.
Choisir une distribution compatible
Pour installer Docker sur un VPS, privilégiez Ubuntu Server 24.04 LTS ou Debian 12. Ces versions bénéficient d’un support long, d’une documentation abondante et d’une compatibilité officielle avec Docker Engine.
Vérifiez l’architecture du serveur avant l’installation :
uname -m
cat /etc/os-release
Une architecture x86_64 convient à la plupart des images Docker. Les VPS ARM64 fonctionnent également, mais certaines images propriétaires ou anciennes peuvent ne pas proposer de version compatible.
Choisissez une image serveur minimale fournie par votre hébergeur. Évitez les environnements graphiques et les distributions en fin de support. Pour une PME, un indépendant ou une agence au Maroc, sélectionnez aussi une région proche de vos utilisateurs, comme Paris, Madrid ou Marseille, afin de réduire la latence.
Mettre à jour le système
Connectez-vous au VPS avec SSH, puis actualisez l’index des paquets et installez les correctifs disponibles :
sudo apt update
sudo apt full-upgrade -y
Supprimez les paquets devenus inutiles et redémarrez si le noyau a été mis à jour :
sudo apt autoremove -y
sudo reboot
Reconnectez-vous après le redémarrage. Contrôlez la version du système et l’espace disque disponible :
lsb_release -a
df -h
Prévoyez suffisamment d’espace pour les images, les volumes et les journaux Docker. Pour une petite application, un disque de 20 à 40 Go peut suffire au départ, mais surveillez son utilisation avec df -h. N’installez pas Docker depuis un script téléchargé sans vérification ; utilisez ensuite le dépôt officiel adapté à votre distribution.
Configurer un utilisateur avec privilèges sudo
Évitez d’administrer le VPS quotidiennement avec root. Créez un utilisateur dédié, puis ajoutez-le au groupe sudo :
sudo adduser deploy
sudo usermod -aG sudo deploy
Remplacez deploy par un nom adapté à votre organisation. Configurez ensuite l’authentification par clé SSH depuis votre poste local :
ssh-copy-id deploy@ADRESSE_IP_DU_VPS
Testez l’accès dans une nouvelle session avant de désactiver les mots de passe. Modifiez la configuration SSH :
sudo nano /etc/ssh/sshd_config
Définissez notamment :
PermitRootLogin no
PasswordAuthentication no
Validez la configuration et rechargez SSH :
sudo sshd -t
sudo systemctl reload ssh
Conservez votre session actuelle ouverte jusqu’à la confirmation de la nouvelle connexion. Gardez une seconde clé administrateur dans un emplacement sécurisé pour éviter de perdre l’accès.
Ouvrir les ports nécessaires
Utilisez un pare-feu et n’autorisez que les services réellement utilisés. Avec UFW, autorisez d’abord SSH avant d’activer la protection :
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Pour un site web ou une API, ouvrez uniquement HTTP et HTTPS :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
N’exposez pas directement les ports internes des conteneurs, comme 3306 pour MySQL, 5432 pour PostgreSQL ou 6379 pour Redis. Faites communiquer ces services sur un réseau Docker privé et publiez seulement le reverse proxy.
Si votre hébergeur propose un pare-feu réseau, appliquez les mêmes règles dans son tableau de bord. Vérifiez aussi les règles IPv6 si votre VPS possède une adresse IPv6 ; un pare-feu configuré uniquement pour IPv4 peut laisser un service accessible par cette autre adresse.
Mettre en place Docker et valider son fonctionnement
Sur un VPS Ubuntu ou Debian, installez Docker depuis le dépôt officiel, activez son démarrage automatique et vérifiez les permissions de votre compte. Un conteneur de test confirme rapidement que le moteur peut télécharger une image et exécuter un service.
Ajouter le dépôt officiel
Commencez par actualiser les paquets et installer les outils nécessaires :
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Créez le dossier destiné aux clés APT, puis ajoutez la clé officielle Docker :
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Pour Debian, remplacez ubuntu par debian dans l’URL de la clé. Ajoutez ensuite le dépôt adapté à votre distribution :
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Utilisez uniquement le dépôt correspondant au système installé sur votre VPS. Une mauvaise distribution ou un nom de version incorrect peut empêcher apt de trouver les paquets.
Installer le moteur et les outils associés
Actualisez l’index, puis installez le moteur Docker, l’interface en ligne de commande et les composants utiles à Compose :
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
Le paquet docker-ce fournit le moteur, tandis que docker-ce-cli fournit la commande docker. docker compose permet de décrire plusieurs services dans un fichier YAML, ce qui facilite le déploiement d’une application web, d’une base de données et d’un proxy.
Vérifiez les versions installées :
docker --version
docker compose version
Si le dépôt officiel propose plusieurs versions, APT installe généralement la version stable disponible pour votre système. Évitez d’ajouter plusieurs dépôts Docker, car leurs paquets peuvent entrer en conflit.
Gérer le service Docker
Activez Docker au démarrage et lancez-le immédiatement :
sudo systemctl enable --now docker
sudo systemctl status docker --no-pager
La mention active (running) confirme que le service fonctionne. Pour consulter les erreurs récentes, utilisez :
sudo journalctl -u docker --since "30 minutes ago" --no-pager
Par défaut, les commandes Docker nécessitent sudo. Pour administrer Docker avec votre compte courant, ajoutez-le au groupe docker :
sudo usermod -aG docker "$USER"
Déconnectez-vous, puis reconnectez-vous en SSH afin que la nouvelle appartenance soit prise en compte. Testez ensuite :
docker ps
Le groupe docker donne des privilèges élevés sur le VPS. Ajoutez uniquement les comptes qui doivent réellement gérer les conteneurs.
Lancer un conteneur de test
Lancez l’image officielle hello-world :
docker run --rm hello-world
Docker télécharge l’image depuis un registre, crée un conteneur, exécute son programme puis supprime le conteneur grâce à l’option --rm. Le message de réussite confirme le fonctionnement du moteur, du réseau sortant et du stockage local des images.
Pour vérifier le téléchargement et l’exécution d’un service HTTP, démarrez Nginx sur le port 8080 :
docker run -d --name nginx-test -p 8080:80 nginx:alpine
curl http://127.0.0.1:8080
Consultez l’état du conteneur avec docker ps, puis supprimez-le après le test :
docker rm -f nginx-test
Si le port 8080 est bloqué par le pare-feu, autorisez-le uniquement si vous en avez besoin. Pour une mise en production, préférez un proxy comme Caddy ou Nginx avec HTTPS plutôt qu’une exposition directe du conteneur.
Questions fréquentes
Avant d’installer Docker sur un VPS, vérifiez la distribution, les ressources disponibles et l’accès administrateur. Utilisez ensuite les commandes adaptées à Ubuntu ou Debian, limitez les privilèges et contrôlez le service avant de déployer vos conteneurs.
Quels prérequis système faut-il vérifier avant d’installer Docker sur un serveur VPS ?
Vérifiez que votre VPS utilise une version 64 bits récente d’Ubuntu ou de Debian, avec un accès SSH et un compte disposant de sudo. Un utilisateur PME peut généralement commencer avec 1 vCPU, 2 Go de RAM et 20 Go de stockage SSD, puis augmenter ces ressources selon les conteneurs utilisés.
Contrôlez la distribution et l’architecture :
cat /etc/os-release
uname -m
Actualisez les paquets avant l’installation :
sudo apt update && sudo apt upgrade -y
Si votre serveur héberge déjà une application, vérifiez les ports utilisés afin d’éviter les conflits avec les conteneurs :
sudo ss -tulpn
Quelles commandes permettent d’installer Docker Engine sur Ubuntu ou Debian ?
Installez les dépendances nécessaires, ajoutez la clé officielle Docker et configurez le dépôt stable :
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Sur Ubuntu, ajoutez le dépôt avec :
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Sur Debian, remplacez ubuntu par debian dans l’URL du dépôt :
https://download.docker.com/linux/debian
Installez Docker Engine et ses composants :
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
`
Comment ajouter un utilisateur au groupe Docker pour éviter d’utiliser sudo ?
Ajoutez votre utilisateur courant au groupe docker :
sudo usermod -aG docker "$USER"
Rechargez votre session SSH pour appliquer le changement. Vous pouvez aussi exécuter :
newgrp docker
Testez ensuite l’accès sans sudo :
docker run hello-world
Le groupe Docker permet de contrôler le démon Docker avec des privilèges élevés. Ajoutez uniquement des utilisateurs de confiance et évitez cette configuration sur un VPS partagé entre plusieurs clients.
Comment vérifier que Docker est correctement installé et que le service est actif ?
Vérifiez la version installée :
docker --version
docker compose version
Contrôlez l’état du service :
sudo systemctl status docker
Activez le démarrage automatique après un redémarrage du VPS :
sudo systemctl enable --now docker
Lancez un conteneur de test :
docker run --rm hello-world
Si le service ne démarre pas, consultez les journaux récents :
sudo journalctl -u docker --no-pager -n 50
Comment installer et utiliser Docker Compose sur un VPS ?
Avec le dépôt officiel Docker, installez le plugin Compose :
sudo apt update
sudo apt install -y docker-compose-plugin
Créez un répertoire pour votre projet :
mkdir -p ~/applications/site
cd ~/applications/site
Ajoutez un fichier compose.yaml, par exemple :
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
restart: unless-stopped
Démarrez le service en arrière-plan :
docker compose up -d
Consultez l’état et les journaux :
docker compose ps
docker compose logs -f
Arrêtez les conteneurs sans supprimer les volumes :
docker compose down
``
`
### Quelles règles de sécurité appliquer après l’installation de Docker sur un [serveur VPS](https://www.clouder.ma/en/vps-server) ?
Utilisez des images officielles ou vérifiées, fixez leurs versions et mettez-les à jour régulièrement. En production, évitez `latest` pour conserver un comportement prévisible lors des redéploiements.
Limitez les ports publiés dans `compose.yaml`. Sur un VPS accessible depuis Internet, configurez un pare-feu, par exemple avec UFW :
```bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
N’exposez pas directement le port Docker 2375 et ne montez pas /var/run/docker.sock dans un conteneur sans nécessité. Sauvegardez les volumes qui contiennent les données de votre application, puis testez régulièrement leur restauration.
Surveillez aussi l’espace disque et les journaux :
docker system df
df -h
sudo journalctl -u docker --since "24 hours ago"