====== Guide d'installation Docker & Docker Compose – Ubuntu 26.04 ====== [[plan_du_site| Retour au plan du site]] ===== Introduction ===== Ce guide détaille l'installation de **Docker** et **Docker Compose** sur une machine virtuelle **Ubuntu 26.04**, avec des exemples concrets de conteneurs à tester et déployer. ---- ===== Prérequis ===== * Machine virtuelle **Ubuntu 26.04 (Noble Numbat)** * Accès **sudo** ou root * Connexion internet * Minimum **5 Go** d’espace disque ---- ===== Installation de Docker ===== ==== 1. Mise à jour du système ==== sudo apt update && sudo apt upgrade -y ==== 2. Installation des dépendances ==== sudo apt install -y ca-certificates curl gnupg ==== 3. Ajout du dépôt officiel Docker ==== sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu noble stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ==== 4. Installation de Docker Engine ==== sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ==== 5. Démarrer et activer Docker ==== sudo systemctl enable --now docker ==== 6. Vérifier l'installation ==== sudo docker run hello-world Si tu vois **"Hello from Docker!"**, l'installation est réussie. ---- ===== Installation de Docker Compose ===== ==== Méthode 1 : Plugin intégré (recommandé) ==== docker compose version ==== Méthode 2 : Version standalone ==== sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) \ -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker compose --version ---- ===== Ajouter ton utilisateur au groupe Docker ===== sudo usermod -aG docker $USER newgrp docker **Déconnecte-toi et reconnecte-toi** pour appliquer les changements. ---- ===== Tester Docker ===== ==== Lancer un conteneur Nginx ==== docker run -d --name test_nginx -p 8090:8090 nginx * Accès : http://:8090 * Vérifier : docker ps * Arrêter : docker stop test_nginx && docker rm test_nginx ---- ===== Exemples de conteneurs à tester ===== ^ Service ^ Commande ^ Port ^ Accès ^ | **Portainer** | docker run -d -p 9000:9000 --name portainer -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer | 9000 | http://:9000 | | **Adminer** | docker run -d --name adminer -p 8080:8080 adminer | 8080 | http://:8080 | | **Redis** | docker run -d --name redis -p 6379:6379 redis | 6379 | docker exec -it redis redis-cli | | **MySQL** | docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:8.0 | 3306 | docker exec -it mysql mysql -u root -p | | **WordPress** | Voir section Docker Compose | 8080 | http://:8080 | ---- ===== Déployer des applications avec Docker Compose ===== ==== 1. Exemple : WordPress + MySQL ==== Créer un fichier **docker-compose.yml** : version: '3.8' services: db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - wordpress_data:/var/www/html ports: - "9000:9000" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: wordpress_data: Lancer : docker compose up -d ---- ==== 2. Exemple : Node.js + MongoDB ==== version: '3.8' services: app: image: node:18 working_dir: /app volumes: - ./app:/app ports: - "3000:3000" command: sh -c "npm install && npm start" depends_on: - mongo mongo: image: mongo:6 volumes: - mongo_data:/data/db ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: mongo_data: Lancer : docker compose up -d ---- ===== Dépannage ===== ^ Problème ^ Solution ^ | Cannot connect to the Docker daemon | Vérifier : sudo systemctl status docker puis sudo systemctl start docker | | Erreur de permissions | Ajouter l’utilisateur au groupe docker : sudo usermod -aG docker $USER | | docker-compose non trouvé | Utiliser docker compose ou installer : sudo apt install docker-compose-plugin | | Port déjà utilisé | Modifier le port ou arrêter le service | | Espace disque insuffisant | docker system prune -a | ---- ===== Commandes Docker utiles ===== ^ Commande ^ Description ^ | docker ps | Conteneurs en cours | | docker ps -a | Tous les conteneurs | | docker images | Images locales | | docker pull <image> | Télécharger une image | | docker run -it <image> /bin/bash | Mode interactif | | docker exec -it <container> /bin/bash | Shell dans un conteneur | | docker logs <container> | Logs | | docker stop <container> | Arrêter | | docker rm <container> | Supprimer | | docker rmi <image> | Supprimer une image | | docker system prune | Nettoyage | ---- ===== Conseils ===== * Expérimente avec les fichiers docker-compose.yml * Lis les logs : docker logs * Nettoie régulièrement : docker system prune * Documente tes tests * Utilise la communauté (StackOverflow, forums Docker) ---- ===== Checklist de validation ===== * [ ] Docker installé et fonctionnel * [ ] Docker Compose installé * [ ] Conteneur Nginx testé * [ ] Stack WordPress + MySQL déployée * [ ] Commandes de base maîtrisées * [ ] Projet personnel déployé ---- ===== Ressources supplémentaires ===== * https://docs.docker.com/ * https://docs.docker.com/compose/ * https://hub.docker.com/ * https://docker-curriculum.com/ [[plan_du_site|⟵ Retour au plan du site]]