🐳 Installer Docker sur un VPS Linux

Guide complet pour installer Docker et Docker Compose sur votre VPS Linux. Docker permet de créer, déployer et exécuter des applications dans des conteneurs isolés.

🐳 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

# Mettre à jour la liste des paquets sudo apt update # Mettre à jour les paquets installés sudo apt upgrade -y

Étape 2 : Installer les dépendances

# Installer les paquets nécessaires sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release

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

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

Étape 4 : Configurer le repository Docker

# 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

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

Étape 6 : Vérifier l'installation

# Vérifier que Docker est installé correctement sudo docker --version # Vérifier que Docker Compose est installé sudo docker compose version

🔧 Installation sur CentOS/RHEL

Étape 1 : Mettre à jour le système

# Mettre à jour les paquets sudo yum update -y

Étape 2 : Installer les dépendances

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

Étape 3 : Ajouter le repository Docker

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

Étape 4 : Installer Docker Engine

# 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

# Démarrer le service Docker sudo systemctl start docker # Activer Docker au démarrage sudo systemctl enable docker

Étape 6 : Vérifier l'installation

# Vérifier que Docker est installé correctement sudo docker --version # Vérifier que Docker Compose est installé sudo 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 :

# Ajouter votre utilisateur au groupe docker sudo usermod -aG docker $USER # Appliquer les changements (déconnexion/reconnexion nécessaire) newgrp 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

# 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

# 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

# Lister les conteneurs en cours d'exécution docker ps # Lister tous les conteneurs (y compris arrêtés) docker ps -a # Lister les images Docker docker 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

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

Sur CentOS/RHEL

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

📦 Commandes Docker essentielles

Gestion des images

# Télécharger une image docker pull nom-image:tag # Lister les images docker images # Supprimer une image docker rmi nom-image # Nettoyer les images inutilisées docker image prune -a

Gestion des conteneurs

# Créer et démarrer un conteneur docker run nom-image # Créer un conteneur en arrière-plan (détaché) docker run -d nom-image # Lister les conteneurs en cours d'exécution docker ps # Arrêter un conteneur docker stop container-id # Démarrer un conteneur arrêté docker start container-id # Redémarrer un conteneur docker restart container-id # Supprimer un conteneur docker rm container-id # Voir les logs d'un conteneur docker logs container-id # Exécuter une commande dans un conteneur en cours d'exécution docker exec -it container-id /bin/bash

Docker Compose

# Démarrer les services définis dans docker-compose.yml docker compose up # Démarrer en arrière-plan docker compose up -d # Arrêter les services docker compose down # Voir les logs docker compose logs # Reconstruire les images docker compose build

🔒 Sécurisation de Docker

Configurer le daemon Docker (optionnel)

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

sudo nano /etc/docker/daemon.json

Ajoutez la configuration suivante :

{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }

Redémarrez Docker :

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

# Mettre à jour les paquets sudo apt update # Mettre à jour Docker sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Sur CentOS/RHEL

# 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

# Arrêter Docker sudo systemctl stop docker # Désinstaller les paquets sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Supprimer les images, conteneurs et volumes sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

Sur CentOS/RHEL

# Arrêter Docker sudo systemctl stop docker # Désinstaller les paquets sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Supprimer les images, conteneurs et volumes sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

❓ Problèmes courants

Erreur "Cannot connect to the Docker daemon"

Solution :

# Vérifier que le service Docker est démarré sudo systemctl status docker # Démarrer Docker si nécessaire sudo systemctl start docker # Vérifier que vous êtes dans le groupe docker groups

Erreur "Permission denied"

Solution :

# 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

# Créer un répertoire pour votre projet mkdir mon-projet cd mon-projet # Créer un fichier docker-compose.yml nano docker-compose.yml

Contenu exemple :

version: '3.8' services: web: image: nginx:latest ports: - "80:80" volumes: - ./html:/usr/share/nginx/html restart: unless-stopped

Démarrer l'application

# Démarrer les services docker compose up -d # Vérifier que le conteneur fonctionne docker 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.