Prérequis
Un VPS Ubuntu 24.04 fraîchement déployé et un accès SSH en root (ou sudo). Vérifiez que le système est à jour :
apt update && apt upgrade -yÉtape 1 — Installer les dépendances
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyringsÉtape 2 — Ajouter le dépôt officiel Docker
N'utilisez jamais le paquet docker.io des dépôts Ubuntu, souvent ancien. Le dépôt officiel garantit les dernières versions stables :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
> /etc/apt/sources.list.d/docker.list
apt updateÉtape 3 — Installer Docker Engine et Compose
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --version
docker compose versionÉtape 4 — Configurer le daemon pour la production
Créez /etc/docker/daemon.json :
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" },
"live-restore": true,
"storage-driver": "overlay2"
}Le plafonnement des logs évite de remplir le disque ; live-restore laisse tourner vos conteneurs pendant les mises à jour du daemon. Redémarrez : systemctl restart docker.
Étape 5 — Vérifier avec un conteneur de test
docker run --rm hello-world
docker run -d --name web -p 80:80 nginx:alpine
curl -I localhostSécurité de base
N'ouvrez jamais le socket Docker en TCP sans TLS. Si vous utilisez un pare-feu UFW, rappelez-vous que Docker insère ses propres règles iptables — les ports publiés avec -p contournent UFW par défaut. Pour verrouiller, exposez sur localhost (-p 127.0.0.1:8080:80) et passez par un reverse proxy.
Aller plus loin
Installez Watchtower pour les mises à jour automatiques d'images, ou lisez notre article « Docker en production sur VPS » pour les limites mémoire et la supervision.