## Objectifs - Installer Docker Engine depuis le dépôt officiel - Activer le plugin Docker Compose - Lancer un premier conteneur de test - Gérer les droits utilisateurs et le démarrage automatique - Mettre à jour, désinstaller et dépanner ## Prérequis - Accès SSH avec privilèges sudo - Systèmes testés: Debian 12, Ubuntu 22.04 ou plus récent, RHEL/AlmaLinux/Rocky 9 - Connexion internet sortante vers download.docker.com --- ## 1) Nettoyer les anciennes versions si présentes ``` sudo apt remove -y docker docker-engine docker.io containerd runc || true sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine || true ``` --- ## 2) Installer les dépendances de base Debian ou Ubuntu ``` sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release sudo install -m 0755 -d /etc/apt/keyrings ``` RHEL/AlmaLinux/Rocky ``` sudo dnf -y install curl ca-certificates gnupg dnf-plugins-core ``` --- ## 3) Ajouter le dépôt Docker officiel et installer ### Debian ou Ubuntu Ajouter la clé GPG et le dépôt stable. ``` curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo $ID)/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release && echo $ID) $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` Démarrer et activer Docker. ``` sudo systemctl enable --now docker sudo systemctl status docker --no-pager ``` ### RHEL, AlmaLinux, Rocky Activer le dépôt et installer. ``` sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable --now docker sudo systemctl status docker --no-pager ``` --- ## 4) Vérifier l’installation et tester un conteneur Vérifier les versions. ``` docker --version docker compose version ``` Tester avec l’image hello-world. ``` sudo docker run --rm hello-world ``` --- ## 5) Post-installation: exécuter Docker sans sudo Ajoutez votre utilisateur au groupe docker, ouvrez une nouvelle session de shell et retestez. ``` sudo usermod -aG docker $USER newgrp docker docker run --rm hello-world ``` --- ## 6) Exemple rapide avec Docker Compose Créez un dossier de test et un fichier docker-compose.yml minimal pour Nginx. ``` mkdir -p ~/compose-nginx && cd ~/compose-nginx cat > docker-compose.yml <<'YAML' services: web: image: nginx:stable ports: - "8080:80" restart: unless-stopped YAML docker compose up -d docker compose ps ``` Ouvrez http://votre-ip:8080 dans un navigateur, puis stoppez si besoin. ``` docker compose down ``` --- ## 7) Mises à jour Debian/Ubuntu ``` sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` RHEL/AlmaLinux/Rocky ``` sudo dnf upgrade -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` --- ## 8) Désinstallation propre Debian/Ubuntu ``` sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo rm -rf /var/lib/docker /var/lib/containerd ``` RHEL/AlmaLinux/Rocky ``` sudo dnf remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo rm -rf /var/lib/docker /var/lib/containerd ``` --- ## 9) Dépannage rapide Service Docker ne démarre pas ``` sudo journalctl -u docker -n 200 --no-pager sudo systemctl restart docker ``` Permission denied sur la socket ``` groups sudo usermod -aG docker $USER newgrp docker ``` Port déjà utilisé par un autre service ``` sudo ss -ltnp | grep :80 sudo ss -ltnp | grep :443 ``` Conflit avec un autre moteur de conteneur ``` sudo systemctl stop podman sudo systemctl disable podman sudo systemctl restart docker ``` --- ## Résumé - Dépôts officiels ajoutés et Docker Engine installé - Service docker activé au démarrage - Plugin Docker Compose prêt à l’emploi - Exemples hello-world et Nginx pour valider - Procédure de mise à jour, suppression et dépannage incluse