Installer Docker sur VPS Linux et déployer ses applications en 2026
Docker simplifie radicalement le déploiement d'applications sur VPS. Installation, docker-compose, volumes, réseaux et Portainer : guide complet pour débuter.
ℹ️ Les VPS et serveurs dédiés sont désormais proposés par Hyperion Cloud, notre entité professionnelle. Les conseils techniques de cet article restent valables.
Pourquoi Docker sur un VPS ?
Docker vous permet de packager votre application et toutes ses dépendances dans un container isolé. Résultat : le même container tourne identiquement en local, en staging et en production sur votre VPS. Plus de problème de dépendances, déploiements reproductibles, rollback en secondes.
Prérequis
- VPS KVM (Docker ne fonctionne pas sur OpenVZ)
- Ubuntu 22.04 ou 24.04 LTS
- Minimum 2 Go de RAM
- Utilisateur avec droits sudo
Étape 1 : Installer Docker Engine via le dépôt APT officiel
Docker déconseille explicitement son script de commodité (get.docker.com) pour la production. La méthode recommandée est le dépôt APT officiel :
apt update && apt install ca-certificates curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
CODENAME=$(. /etc/os-release && echo $VERSION_CODENAME)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $CODENAME stable" | tee /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Ajoutez votre utilisateur au groupe docker pour éviter sudo à chaque commande :
usermod -aG docker votrenom
newgrp docker
Vérifiez l'installation :
docker run hello-world
Étape 2 : Vérifier Docker Compose V2
Docker Compose V2 est inclus dans le paquet docker-compose-plugin installé ci-dessus :
docker compose version
Étape 3 : Votre premier docker-compose.yml
Exemple : déployer une application Node.js + PostgreSQL :
services:
app:
image: node:20-alpine
working_dir: /app
volumes:
- ./app:/app
command: node server.js
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
docker compose up -d
Commandes Docker essentielles
docker compose up -d: démarrer en arrière-plandocker compose down: arrêter et supprimer les containersdocker compose logs -f nom_service: suivre les logsdocker compose pull && docker compose up -d: mettre à jour les imagesdocker system prune -f: nettoyer images et containers inutilisésdocker exec -it nom_container bash: accéder à un container en cours
Gérer les volumes et la persistence des données
Les données dans un container sont perdues à sa suppression. Toujours utiliser des volumes pour les données persistantes :
- Named volumes : gérés par Docker, simples à sauvegarder (
docker volume ls) - Bind mounts : dossier hôte monté dans le container, utile pour le développement
Installer Portainer pour une interface graphique
Portainer est une UI web pour gérer vos containers Docker :
docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Accédez à http://votre_ip:9000 pour configurer le compte admin. Pensez à protéger ce port avec UFW ou un reverse proxy Nginx.
Bonnes pratiques de sécurité Docker
- Ne jamais exposer le socket Docker (
/var/run/docker.sock) à des containers non fiables - Toujours utiliser des images officielles ou auditées
- Définir des limites de ressources par container (
mem_limit,cpus) - Ne pas exécuter en root dans les containers quand c'est évitable
- Scanner régulièrement vos images avec
docker scout
Besoin d'un VPS ou d'un serveur dédié ? Hyperion Cloud, notre entité pro, les propose sur la même infrastructure française, anti-DDoS inclus.
Voir les offres VPS chez Hyperion Cloud ↗