InfrawireLogo InfrawireDocumentation
Appeler

Installer Docker sur un VPS Linux

Ce guide vous explique comment installer Docker et Docker Compose sur votre VPS Linux. Docker est une plateforme de conteneurisation qui permet de créer, déployer et exécuter des applications dans des conteneurs isolés, facilitant ainsi le déploiement et la gestion des applications.

📋 Prérequis

  • Un VPS Linux avec accès root ou sudo
  • Ubuntu 20.04+ ou Debian 11+ (ou CentOS 7+/RHEL 7+)
  • Au moins 1 Go de RAM (2 Go recommandé)
  • Une connexion Internet stable

💡 Recommandation d'infrastructure

Docker nécessite des disques rapides pour la compilation et les opérations I/O intensives. Nous recommandons nos VPS NVMe pour une performance optimale lors de l'utilisation de Docker. Les disques NVMe offrent des vitesses jusqu'à 10x supérieures aux SSD classiques, ce qui accélère considérablement la construction d'images Docker et le démarrage des conteneurs.

⚠️ Important avant l'installation

  • Vérifiez votre système : Docker nécessite un système 64 bits
  • Sauvegardez vos données : L'installation peut modifier certaines configurations système
  • Temps d'installation : L'installation prend généralement 5 à 10 minutes

🔧 Installation sur Ubuntu/Debian

Étape 1 : Mettre à jour le système

Bash
1# Mettre à jour la liste des paquets 2sudo apt update 3 4# Mettre à jour les paquets installés 5sudo apt upgrade -y

Étape 2 : Installer les dépendances

Bash
1# Installer les paquets nécessaires 2sudo apt install -y \ 3 ca-certificates \ 4 curl \ 5 gnupg \ 6 lsb-release

Étape 3 : Ajouter la clé GPG officielle de Docker

Bash
1# Créer le répertoire pour les clés 2sudo install -m 0755 -d /etc/apt/keyrings 3 4# Télécharger et ajouter la clé GPG 5curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 6 7# Donner les permissions correctes 8sudo chmod a+r /etc/apt/keyrings/docker.gpg

Étape 4 : Configurer le repository Docker

Bash
# Ajouter le repository Docker echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Étape 5 : Installer Docker Engine

Bash
1# Mettre à jour la liste des paquets 2sudo apt update 3 4# Installer Docker Engine, containerd et Docker Compose 5sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Étape 6 : Vérifier l'installation

Bash
1# Vérifier que Docker est installé correctement 2sudo docker --version 3 4# Vérifier que Docker Compose est installé 5sudo docker compose version

🔧 Installation sur CentOS/RHEL

Étape 1 : Mettre à jour le système

Bash
# Mettre à jour les paquets sudo yum update -y

Étape 2 : Installer les dépendances

Bash
# Installer les paquets nécessaires sudo yum install -y yum-utils

Étape 3 : Ajouter le repository Docker

Bash
# Ajouter le repository Docker sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Étape 4 : Installer Docker Engine

Bash
# Installer Docker Engine, containerd et Docker Compose sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Étape 5 : Démarrer Docker

Bash
1# Démarrer le service Docker 2sudo systemctl start docker 3 4# Activer Docker au démarrage 5sudo systemctl enable docker

Étape 6 : Vérifier l'installation

Bash
1# Vérifier que Docker est installé correctement 2sudo docker --version 3 4# Vérifier que Docker Compose est installé 5sudo docker compose version

👤 Étape 7 : Configurer les permissions (Important)

Par défaut, Docker nécessite les privilèges root. Pour exécuter Docker sans sudo, ajoutez votre utilisateur au groupe docker :

Bash
1# Ajouter votre utilisateur au groupe docker 2sudo usermod -aG docker $USER 3 4# Appliquer les changements (déconnexion/reconnexion nécessaire) 5newgrp docker

Important : Après avoir ajouté votre utilisateur au groupe docker, vous devez vous déconnecter et vous reconnecter pour que les changements prennent effet.

Vérifier les permissions

Bash
# Tester Docker sans sudo docker run hello-world

Si cette commande fonctionne sans erreur, Docker est correctement configuré !

🧪 Étape 8 : Tester Docker

Exécuter un conteneur de test

Bash
# Lancer un conteneur Hello World docker run hello-world

Cette commande :

  1. Télécharge l'image hello-world depuis Docker Hub
  2. Crée un conteneur à partir de cette image
  3. Exécute le conteneur
  4. Affiche un message de confirmation

Vérifier les conteneurs

Bash
1# Lister les conteneurs en cours d'exécution 2docker ps 3 4# Lister tous les conteneurs (y compris arrêtés) 5docker ps -a 6 7# Lister les images Docker 8docker images

🐙 Étape 9 : Installer Docker Compose (si non inclus)

Si Docker Compose n'a pas été installé avec Docker Engine, installez-le séparément :

Sur Ubuntu/Debian

Bash
1# Télécharger Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# Rendre exécutable 5sudo chmod +x /usr/local/bin/docker-compose 6 7# Vérifier l'installation 8docker-compose --version

Sur CentOS/RHEL

Bash
1# Télécharger Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# Rendre exécutable 5sudo chmod +x /usr/local/bin/docker-compose 6 7# Vérifier l'installation 8docker-compose --version

📦 Commandes Docker essentielles

Gestion des images

Bash
1# Télécharger une image 2docker pull nom-image:tag 3 4# Lister les images 5docker images 6 7# Supprimer une image 8docker rmi nom-image 9 10# Nettoyer les images inutilisées 11docker image prune -a

Gestion des conteneurs

Bash
1# Créer et démarrer un conteneur 2docker run nom-image 3 4# Créer un conteneur en arrière-plan (détaché) 5docker run -d nom-image 6 7# Lister les conteneurs en cours d'exécution 8docker ps 9 10# Arrêter un conteneur 11docker stop container-id 12 13# Démarrer un conteneur arrêté 14docker start container-id 15 16# Redémarrer un conteneur 17docker restart container-id 18 19# Supprimer un conteneur 20docker rm container-id 21 22# Voir les logs d'un conteneur 23docker logs container-id 24 25# Exécuter une commande dans un conteneur en cours d'exécution 26docker exec -it container-id /bin/bash

Docker Compose

Bash
1# Démarrer les services définis dans docker-compose.yml 2docker compose up 3 4# Démarrer en arrière-plan 5docker compose up -d 6 7# Arrêter les services 8docker compose down 9 10# Voir les logs 11docker compose logs 12 13# Reconstruire les images 14docker compose build

🔒 Sécurisation de Docker

Configurer le daemon Docker (optionnel)

Créez ou modifiez /etc/docker/daemon.json :

Bash
sudo nano /etc/docker/daemon.json

Ajoutez la configuration suivante :

JSON
1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}

Redémarrez Docker :

Bash
sudo systemctl restart docker

Limiter l'accès à Docker

Par défaut, les utilisateurs du groupe docker ont des privilèges équivalents à root. Pour plus de sécurité, vous pouvez :

  1. Ne donner l'accès qu'aux utilisateurs de confiance
  2. Utiliser Docker rootless (installation avancée)
  3. Configurer des politiques de sécurité via AppArmor ou SELinux

🔄 Mettre à jour Docker

Sur Ubuntu/Debian

Bash
1# Mettre à jour les paquets 2sudo apt update 3 4# Mettre à jour Docker 5sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Sur CentOS/RHEL

Bash
# Mettre à jour Docker sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

🗑️ Désinstaller Docker

Si vous souhaitez désinstaller Docker :

Sur Ubuntu/Debian

Bash
1# Arrêter Docker 2sudo systemctl stop docker 3 4# Désinstaller les paquets 5sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# Supprimer les images, conteneurs et volumes 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd

Sur CentOS/RHEL

Bash
1# Arrêter Docker 2sudo systemctl stop docker 3 4# Désinstaller les paquets 5sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# Supprimer les images, conteneurs et volumes 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd

❓ Problèmes courants

Erreur "Cannot connect to the Docker daemon"

Solution :

Bash
1# Vérifier que le service Docker est démarré 2sudo systemctl status docker 3 4# Démarrer Docker si nécessaire 5sudo systemctl start docker 6 7# Vérifier que vous êtes dans le groupe docker 8groups

Erreur "Permission denied"

Solution :

Bash
# Ajouter votre utilisateur au groupe docker sudo usermod -aG docker $USER # Se déconnecter et se reconnecter

Docker est lent

Solutions possibles :

  • Vérifiez l'espace disque : df -h
  • Nettoyez les images inutilisées : docker system prune -a
  • Vérifiez la RAM disponible : free -h

📝 Exemple : Déployer une application simple

Créer un fichier docker-compose.yml

Bash
1# Créer un répertoire pour votre projet 2mkdir mon-projet 3cd mon-projet 4 5# Créer un fichier docker-compose.yml 6nano docker-compose.yml

Contenu exemple :

YAML
1version: '3.8' 2 3services: 4 web: 5 image: nginx:latest 6 ports: 7 - "80:80" 8 volumes: 9 - ./html:/usr/share/nginx/html 10 restart: unless-stopped

Démarrer l'application

Bash
1# Démarrer les services 2docker compose up -d 3 4# Vérifier que le conteneur fonctionne 5docker ps

📞 Besoin d'aide ?

Si vous rencontrez des difficultés lors de l'installation de Docker, n'hésitez pas à contacter le support Infrawire. Notre équipe est disponible pour vous aider.


Note : Docker est un outil puissant qui simplifie grandement le déploiement d'applications. Prenez le temps de bien comprendre les concepts de base avant de déployer des applications en production.