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.
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
Prêt à lancer votre serveur ? Déploiement en 60 secondes, protection anti-DDoS L3/L4 incluse, serveurs hébergés en France dans nos propres centres de données.
Commander un VPS KVM France →