====== 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]]