HELPER VPS

Installer Docker sur un VPS : Ubuntu, Debian, AlmaLinux et Compose

En installant depuis le dépôt officiel de Docker, vous obtenez la dernière version de Docker Engine et du plugin Compose, et les mises à jour se font ensuite avec une simple mise à jour du système. Voici les commandes par système d'exploitation et les réglages à faire après l'installation, dans l'ordre.

Le plus rapide : créer le serveur avec l'image Docker

Pour un nouveau serveur, le plus rapide est de choisir Docker dans la liste des images. Le serveur démarre avec Docker Engine et Docker Compose installés sur Ubuntu 24.04 LTS, et vous lancez docker compose up dès la connexion. La présentation de l'application et les tailles recommandées sont sur la page VPS Docker.

Pour ajouter Docker à un serveur déjà en service, ou utiliser un autre système comme Debian ou AlmaLinux, installez-le vous-même en suivant les étapes ci-dessous. Toutes les commandes partent du principe que vous êtes connecté en root. Si vous êtes connecté en utilisateur standard, ajoutez sudo devant les commandes.

À vérifier avant l'installation

Docker fonctionne sur des serveurs de toute taille. Pour les projets personnels exécutant quelques conteneurs, le plus petit plan général de 12GB est largement suffisant ; pour exécuter une base de données, un serveur web et un cache ensemble, 24GB ou plus vous offrent de la marge. Si vous téléchargez et construisez souvent des images, un VPS NVMe avec un disque rapide fait une différence notable.

Si d'anciens paquets Docker issus des dépôts du système sont présents, supprimez-les d'abord pour qu'ils ne se mélangent pas aux paquets officiels. Les paquets non installés sont ignorés : vous pouvez lancer la commande telle quelle.

Ubuntu, Debian
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; done

Installer Docker sur Ubuntu 24.04

Étape 1. Ajouter la clé et l'adresse du dépôt

Ubuntu 24.04
apt update
apt install -y ca-certificates curl
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
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" > /etc/apt/sources.list.d/docker.list

Étape 2. Installer Docker Engine et Compose

Ubuntu 24.04
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Une fois l'installation terminée, le service Docker démarre automatiquement, et il redémarre aussi avec le serveur. Les mêmes commandes fonctionnent telles quelles sur Ubuntu 22.04 et 26.04. Le nom de version utilisé dans l'adresse du dépôt est lu automatiquement dans /etc/os-release.

Installer Docker sur Debian 13

Sur Debian, les étapes sont les mêmes qu'avec Ubuntu ; seule l'adresse du dépôt devient linux/debian. Les mêmes commandes s'utilisent aussi sur Debian 12.

Debian 13
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Installer Docker sur AlmaLinux 10

AlmaLinux et Rocky Linux utilisent le dépôt RHEL de Docker. Pour éviter les conflits avec Podman, installé par défaut, faites d'abord le ménage puis installez. Les commandes sont les mêmes sur AlmaLinux 9 et Rocky Linux 9 et 10.

AlmaLinux 10
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker

Lors de la première installation, si l'on vous demande d'accepter la clé de signature du dépôt, tapez y. Sur la famille RHEL, le service ne démarre pas automatiquement après l'installation : la dernière ligne, systemctl enable --now docker, le lance tout de suite et l'active au démarrage.

Vérifier l'installation et lancer un premier conteneur

Lancez une fois un conteneur de test avec la commande ci-dessous. Si un message commençant par Hello from Docker s'affiche, le moteur, le téléchargement d'images et l'exécution de conteneurs fonctionnent. Avec --rm, le conteneur est supprimé dès la fin de l'exécution.

Terminal
docker run --rm hello-world
docker compose version

Pour utiliser Docker avec un utilisateur standard, ajoutez-le au groupe docker et reconnectez-vous. Le groupe docker a les mêmes droits que root : n'y ajoutez que des utilisateurs de confiance.

Terminal
usermod -aG docker nom-utilisateur

Déployer des services avec Docker Compose

Compose permet de décrire la configuration des conteneurs dans un seul fichier YAML et de tout lancer en une ligne. Même en migrant ou en recréant le serveur, ce même fichier suffit pour retrouver le même environnement. Par exemple, un fichier qui lance un serveur web Nginx ressemble à ceci.

Terminal
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
  web:
    image: nginx:stable
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped
EOF
docker compose up -d

Ouvrez http://YOUR_SERVER_IP dans le navigateur : la page Nginx s'affiche. Placez un index.html dans le dossier html pour qu'il soit servi. Les quatre commandes ci-dessous suffisent au quotidien.

  • docker compose ps : affiche les conteneurs en cours d'exécution et leurs ports.
  • docker compose logs -f : suit les journaux en temps réel. Quittez avec Ctrl+C.
  • docker compose pull && docker compose up -d : récupère les nouvelles images et passe les conteneurs à la nouvelle version.
  • docker compose down : arrête et supprime les conteneurs. Les données stockées dans les volumes sont conservées.

Avec restart: unless-stopped, les conteneurs redémarrent automatiquement quand le serveur redémarre. Seuls les conteneurs que vous avez arrêtés vous-même restent arrêtés.

Pare-feu et exposition des ports

Docker ouvre les ports exposés avec ports: en ajoutant directement des règles de pare-feu (iptables). Un port non autorisé dans ufw reste donc accessible de l'extérieur s'il figure dans ports:. Pour une base de données ou une interface d'administration qui n'a pas à être visible de l'extérieur, liez-la uniquement à 127.0.0.1 comme ci-dessous : elle ne sera accessible que depuis le serveur.

compose.yaml
    ports:
      - "127.0.0.1:5432:5432"

Pour un service web, n'exposez que les ports 80 et 443, et laissez les autres services s'appeler entre eux par leur nom au sein du même réseau Compose. Pour le pare-feu de base du serveur, suivez le guide du pare-feu de base et n'ouvrez que SSH, HTTP et HTTPS.

Gestion des journaux et du disque

Sans réglage particulier, les journaux des conteneurs s'accumulent sans fin. En indiquant le pilote de journalisation local dans /etc/docker/daemon.json comme ci-dessous, les journaux sont compressés et seule une taille définie est conservée. Après enregistrement, lancez systemctl restart docker : le réglage s'applique aux nouveaux conteneurs.

/etc/docker/daemon.json
{
  "log-driver": "local"
}

Les images inutilisées et les conteneurs arrêtés occupent aussi de l'espace disque. Consultez l'utilisation avec docker system df et supprimez les images inutilisées avec docker image prune -a. Quand les données augmentent, vous pouvez aussi ajouter au serveur un disque bloc NVMe et l'utiliser comme dossier de données de Docker.

Protéger les données et étapes suivantes

Les conteneurs peuvent être supprimés et recréés à tout moment, mais les données des volumes, elles, ne se recréent pas. Conservez régulièrement des fichiers de dump de vos bases de données, et protégez l'ensemble du serveur avec la sauvegarde automatique ou des instantanés. La méthode est dans le guide des sauvegardes et instantanés.

Le fichier Compose pour déployer WordPress avec Docker se trouve dans le guide d'installation de WordPress. Pour déployer plusieurs applications depuis une interface avec certificats HTTPS automatiques, créez un serveur avec l'image Coolify ou Dokploy. Les tailles adaptées à un usage dédié aux conteneurs sont présentées sur la page VPS conteneur.

Guides complémentaires

Des réglages qu'il est bon de faire à la suite de ce guide.

Voir tous les guides