Table des matières
Guide d'installation Docker & Docker Compose – Ubuntu 26.04
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:<IP>:8090 * Vérifier : <code>docker ps</code> * Arrêter : <code bash> docker stop test_nginx && docker rm test_nginx </code> —- ===== Exemples de conteneurs à tester ===== ^ Service ^ Commande ^ Port ^ Accès ^ | Portainer | <code>docker run -d -p 9000:9000 –name portainer -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer</code> | 9000 | http:<IP>:9000 |
| Adminer |
docker run -d --name adminer -p 8080:8080 adminer
| 8080 | http:<IP>:8080 | | Redis | <code>docker run -d –name redis -p 6379:6379 redis</code> | 6379 | <code>docker exec -it redis redis-cli</code> | | MySQL | <code>docker run -d –name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:8.0</code> | 3306 | <code>docker exec -it mysql mysql -u root -p</code> | | WordPress | Voir section Docker Compose | 8080 | http:<IP>: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é
