🐳 Installer Docker sur un VPS#
Apprenez à installer et configurer Docker et Docker Compose sur votre VPS pour déployer vos applications en conteneurs de manière simple et efficace.
🎯 Objectifs#
- 🐳 Installer Docker Engine sur Ubuntu/Debian
- 📦 Installer Docker Compose
- 🛠️ Maîtriser les commandes essentielles
- 🌐 Comprendre les réseaux et volumes
- 🔧 Résoudre les problèmes courants
🧰 Prérequis#
- VPS sous Ubuntu 20.04+ ou Debian 11+
- Accès root ou sudo
- Connexion SSH active
- Au moins 2 GB de RAM recommandé
- 10 GB d'espace disque libre minimum
1️⃣ Préparation du système#
📦 Mise à jour et nettoyage#
# Mise à jour complète du système sudo apt update && sudo apt upgrade -y # Suppression des anciennes versions Docker (si présentes) for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
2️⃣ Installation de Docker#
📥 Installation avec le script officiel#
# Téléchargement du script d'installation officiel curl -fsSL https://get.docker.com -o get-docker.sh # Exécution du script d'installation sh get-docker.sh # Vérification de l'installation sudo systemctl status docker
✅ Test de l'installation#
# Test avec un conteneur Hello World sudo docker run hello-world # Vérification de la version sudo docker --version sudo docker compose version
👥 Configuration des utilisateurs#
# Ajout de votre utilisateur au groupe Docker (évite sudo) sudo usermod -aG docker $USER # Application des changements (déconnexion/reconnexion ou) newgrp docker # Test sans sudo docker run hello-world
3️⃣ Installation et utilisation de Docker Compose#
📦 Vérification de Docker Compose#
Docker Compose est maintenant inclus comme plugin :
# Vérification de l'installation docker compose version # Aide Docker Compose docker compose --help
🚀 Premier test pratique#
Testons Docker avec un serveur web simple :
# Lancement d'un serveur Nginx docker run -d --name mon-nginx -p 8080:80 nginx # Vérification que le conteneur fonctionne docker ps # Test dans le navigateur : http://votre-ip:8080 # Vous devriez voir la page d'accueil Nginx # Arrêt et suppression du conteneur docker stop mon-nginx docker rm mon-nginx
📝 Exemple simple avec Docker Compose#
Créons un fichier docker-compose.yml
basique :
# Création d'un répertoire de test mkdir ~/test-docker && cd ~/test-docker # Création du fichier docker-compose.yml cat > docker-compose.yml << 'EOF' version: "3.8" services: web: image: nginx ports: - "8080:80" EOF # Lancement avec Docker Compose docker compose up -d # Vérification docker compose ps # Arrêt et nettoyage docker compose down
4️⃣ Commandes Docker essentielles#
📦 Gestion des conteneurs#
# Lister les conteneurs actifs docker ps # Lister tous les conteneurs (actifs et arrêtés) docker ps -a # Démarrer un conteneur docker start nom_conteneur # Arrêter un conteneur docker stop nom_conteneur # Redémarrer un conteneur docker restart nom_conteneur # Supprimer un conteneur docker rm nom_conteneur # Supprimer tous les conteneurs arrêtés docker container prune
🖼️ Gestion des images#
# Lister les images docker images # Télécharger une image docker pull nginx:latest # Supprimer une image docker rmi nginx:latest # Supprimer les images non utilisées docker image prune
📊 Surveillance et logs#
# Logs d'un conteneur docker logs nom_conteneur # Logs en temps réel docker logs -f nom_conteneur # Statistiques des conteneurs docker stats # Informations système Docker docker system info # Espace disque utilisé docker system df
🔧 Accès aux conteneurs#
# Exécuter une commande dans un conteneur docker exec -it nom_conteneur bash # Copier des fichiers vers/depuis un conteneur docker cp fichier.txt nom_conteneur:/path/to/destination docker cp nom_conteneur:/path/to/file.txt ./
🐙 Commandes Docker Compose#
# Démarrer les services docker compose up -d # Voir l'état des services docker compose ps # Voir les logs docker compose logs # Arrêter les services docker compose down # Reconstruire et démarrer docker compose up --build -d
5️⃣ Réseau et volumes Docker#
🌐 Gestion des réseaux#
# Lister les réseaux docker network ls # Créer un réseau docker network create mon-reseau # Connecter un conteneur à un réseau docker network connect mon-reseau nom_conteneur # Inspecter un réseau docker network inspect mon-reseau # Supprimer un réseau docker network rm mon-reseau
💾 Gestion des volumes#
# Lister les volumes docker volume ls # Créer un volume docker volume create mon-volume # Inspecter un volume docker volume inspect mon-volume # Supprimer un volume docker volume rm mon-volume # Supprimer les volumes non utilisés docker volume prune
6️⃣ Dépannage#
🔍 Problèmes courants#
Erreur : "Cannot connect to Docker daemon"
# Vérification du service sudo systemctl status docker # Redémarrage si nécessaire sudo systemctl restart docker # Vérification des permissions groups $USER
Erreur : "No space left on device"
# Vérification de l'espace disque df -h # Nettoyage Docker docker system prune -a # Vérification des logs volumineux sudo du -sh /var/lib/docker/containers/*/
Conteneur qui ne démarre pas
# Vérification des logs docker logs nom_conteneur # Vérification de la configuration docker inspect nom_conteneur # Test en mode interactif docker run -it --entrypoint /bin/bash nom_image
📋 Logs et diagnostics#
# Logs du daemon Docker sudo journalctl -fu docker.service # Informations détaillées du système docker system info # Événements Docker en temps réel docker events # Inspection détaillée d'un conteneur docker inspect nom_conteneur
✅ Résumé de l'installation#
Votre installation Docker est maintenant complète avec :
- 🐳 Docker Engine + Docker Compose installés et opérationnels
- 🚀 Premiers tests réalisés avec succès
- 🔧 Commandes essentielles maîtrisées
- 🌐 Gestion des réseaux et volumes configurée