Offre Durée limitée : -10% sur tout le site avec le code WELCOME10

Installer Docker sur un VPS Debian ou Ubuntu

Mis à jour le 4 septembre 2026 5 min de lecture 7 sections

Docker permet de faire tourner plusieurs applications sur le même VPS sans qu'elles se gênent entre elles, chacune dans son propre conteneur isolé, avec ses propres dépendances. C'est l'outil qui a remplacé l'installation manuelle de chaque application directement sur le système, avec les conflits de versions que ça finissait toujours par provoquer. Ce guide couvre l'installation sur un VPS Debian ou Ubuntu, le premier conteneur, Docker Compose pour les applications à plusieurs services, et les réglages de sécurité qui évitent les pièges les plus courants.

Pourquoi utiliser Docker plutôt qu'une installation classique

Sans conteneurisation, installer plusieurs applications sur le même VPS revient souvent à gérer des versions de langages ou de bibliothèques qui se contredisent (une application veut PHP 8.1, une autre PHP 8.3, par exemple). Docker évite ce problème en embarquant chaque application avec exactement les dépendances dont elle a besoin :

  • Isolation : chaque conteneur a son propre système de fichiers et ses propres dépendances, sans interférence avec les autres.
  • Portabilité : une configuration qui fonctionne sur votre VPS de test fonctionne à l'identique en production, puisque c'est littéralement le même conteneur qui tourne.
  • Reproductibilité : un fichier docker-compose.yml décrit toute une application, base de données incluse, et se relance en une seule commande sur un nouveau serveur.
  • Ressources : un conteneur partage le noyau du système hôte, ce qui le rend nettement plus léger qu'une machine virtuelle complète pour le même usage.

Prérequis avant de commencer

Cette installation suppose un VPS sous Debian ou Ubuntu (les commandes ci-dessous sont testées sur ces deux distributions, qui partagent le même gestionnaire de paquets APT), avec un accès SSH disposant des droits sudo. Un VPS avec 1 Go de RAM suffit pour quelques conteneurs légers ; comptez 2 Go dès qu'une base de données rejoint la stack.

Mettez le système à jour avant toute chose :

sudo apt update && sudo apt upgrade -y

Installer Docker via le script officiel

Docker propose un script d'installation officiel qui détecte la distribution et configure le dépôt correspondant automatiquement, plus simple et moins sujet à l'erreur qu'un ajout manuel du dépôt APT :

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Une fois le script terminé, vérifiez la version installée :

docker --version

Par défaut, les commandes Docker demandent sudo. Pour l'éviter à chaque fois, ajoutez votre utilisateur au groupe docker :

sudo usermod -aG docker $USER

Déconnectez-vous puis reconnectez-vous à votre session SSH pour que ce changement prenne effet.

Lancer un premier conteneur

Vérifiez que tout fonctionne avec le conteneur de test officiel :

docker run hello-world

Un message de confirmation doit s'afficher. Passons à quelque chose de plus concret, un serveur web Nginx :

docker run --name mon-serveur-web -p 8080:80 -d nginx
  • --name mon-serveur-web donne un nom au conteneur, plus lisible qu'un identifiant généré.
  • -p 8080:80 relie le port 8080 du VPS au port 80 à l'intérieur du conteneur.
  • -d lance le conteneur en arrière-plan.

Rendez-vous sur http://[IP-DU-VPS]:8080 dans un navigateur : la page d'accueil de Nginx doit s'afficher.

Docker Compose : plusieurs conteneurs, une seule commande

Dès qu'une application a besoin de plusieurs services liés entre eux (un site web et sa base de données, par exemple), écrire une commande docker run par service devient vite ingérable. Docker Compose décrit toute la stack dans un seul fichier et la démarre d'un coup.

Installez le plugin Compose :

sudo apt install docker-compose-plugin -y
docker compose version

Créez un dossier de projet puis un fichier docker-compose.yml :

mkdir mon-projet && cd mon-projet
nano docker-compose.yml

Exemple pour un site web et sa base de données :

services:
  web:
    image: nginx
    restart: always
    ports:
      - "8080:80"
    depends_on:
      - db

  db:
    image: mariadb:10.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: changez-ce-mot-de-passe
      MYSQL_DATABASE: mon_appli
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Puis démarrez l'ensemble :

docker compose up -d

Docker télécharge les images nécessaires, crée les deux conteneurs, les relie entre eux et les démarre. Le volume nommé db_data conserve les données de la base même si le conteneur est recréé.

Sécuriser Docker sur un VPS

Un conteneur mal exposé annule une bonne partie de l'intérêt de l'isolation. Quatre réflexes suffisent pour l'essentiel des cas :

  • Limiter le groupe Docker : il donne des privilèges équivalents à root sur le système hôte. N'y ajoutez que les comptes de confiance.
  • N'ouvrir que les ports nécessaires : un pare-feu comme UFW (sudo ufw allow 80, sudo ufw allow 443) évite qu'un port de conteneur oublié reste accessible à tout Internet.
  • N'utiliser que des images vérifiées : les images marquées "official" sur Docker Hub sont maintenues et auditées ; une image inconnue peut embarquer autre chose que ce qu'elle annonce.
  • Mettre à jour régulièrement : sudo apt update && sudo apt upgrade pour Docker lui-même, et le renouvellement périodique des images de vos conteneurs (docker compose pull puis docker compose up -d) pour les applications qu'ils font tourner.

Commandes utiles pour gérer ses conteneurs

  • Lister les conteneurs actifs : docker ps
  • Voir les journaux d'un conteneur : docker logs mon-serveur-web
  • Arrêter puis relancer un conteneur : docker stop mon-serveur-web puis docker start mon-serveur-web
  • Sauvegarder un volume : docker run --rm -v db_data:/data -v $(pwd):/backup busybox tar czf /backup/backup.tar.gz /data

Une fois Docker en place, il devient la brique de base pour aller plus loin : notre guide d'installation de Hermes Agent montre par exemple comment déployer un agent IA open source avec cette même méthode. Retrouvez toute la documentation officielle sur docs.docker.com si vous voulez creuser un point précis.

Pour ce type d'usage, un VPS Ubuntu ElypseCloud ou son équivalent VPS Linux offre l'accès root nécessaire pour installer Docker sans restriction. Si votre projet regroupe déjà plusieurs applications préconfigurées, notre page VPS avec applications préconfigurées peut aussi vous faire gagner du temps ; et pour un projet qui demande plus de ressources dédiées, nos serveurs dédiés offrent la même liberté à plus grande échelle.

FAQ

Faut-il un VPS puissant pour faire tourner Docker ?

Non. Docker est plus léger qu'une machine virtuelle classique : 1 Go de RAM suffit pour quelques conteneurs légers, 2 Go devient plus confortable dès qu'une base de données rejoint la stack. Le CPU compte surtout si plusieurs conteneurs tournent en même temps.

Docker fonctionne-t-il aussi sur un VPS Windows ?

Ce guide couvre Docker Engine sur Linux (Debian/Ubuntu), la configuration la plus courante et la plus légère. Sur un VPS Windows, Docker Desktop existe mais repose sur un mécanisme différent, plus gourmand en ressources.

Peut-on installer plusieurs applications avec Docker sur le même VPS ?

Oui, c'est justement l'intérêt de la conteneurisation : chaque application tourne isolée dans son propre conteneur, sans conflit de dépendances, tant que le VPS a assez de RAM et de CPU pour toutes les faire tourner ensemble.

Docker remplace-t-il un pare-feu ?

Non. Docker gère l'isolation entre applications, pas la protection réseau du VPS : un pare-feu comme UFW reste nécessaire pour n'exposer que les ports réellement utilisés.