1. Introduction
Docker est une plateforme de conteneurisation légère et performante qui permet d’empaqueter des applications avec leurs dépendances dans des conteneurs. Il facilite le déploiement, la scalabilité et la portabilité des applications sur différents environnements.
2. Installation de Docker sur Debian/Ubuntu
2.1 Prérequis
-
Système Debian ou Ubuntu à jour
-
Droits sudo ou utilisateur root
2.2 Étapes d’installation
a) Mettre à jour les paquets
sudo apt update
sudo apt upgrade -y
b) Installer les paquets nécessaires
sudo apt install
ca-certificates
curl
gnupg
lsb-release -y
c) Ajouter la clé GPG officielle de Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Remplacez
ubuntudans l’URL si vous utilisez Debian.
d) Ajouter le dépôt Docker
echo
"deb [arch=$(dpkg --print-architecture)
signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
e) Installer Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
f) Vérifier l’installation
sudo docker version
g) (Optionnel) Ajouter votre utilisateur au groupe docker
sudo usermod -aG docker $USER
newgrp docker
3. Configuration de Docker
3.1 Fichier de configuration (daemon)
Docker utilise le fichier /etc/docker/daemon.json pour la configuration du démon.
Exemple de configuration :
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
Redémarrer Docker après modification :
sudo systemctl restart docker
4. Utilisation de Docker : Commandes de base
4.1 Lancer un conteneur
docker run -it --rm ubuntu bash
-
-it: mode interactif -
--rm: supprime le conteneur à la fin -
ubuntu: image de base -
bash: commande lancée
4.2 Lister les conteneurs
docker ps # en cours d’exécution
docker ps -a # tous
4.3 Gérer les images
docker pull nginx
docker images
docker rmi nginx
4.4 Exécuter un service web simple
docker run -d -p 8080:80 --name web nginx
-
Accéder au service : http://localhost:8080
4.5 Copier des fichiers dans un conteneur
docker cp fichier.txt web:/usr/share/nginx/html/
5. Utilisation avancée avec Docker Compose
5.1 Exemple : Application Web + Base de données
Créer un fichier docker-compose.yml :
version: "3.8"
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: demo
5.2 Lancer l’application
docker compose up -d
5.3 Arrêter les services
docker compose down
6. Exemples d’utilisation concrète
🧪 Exemple 1 : Tester une API localement
docker run -d -p 5000:5000 --name api flask-api-image
📁 Exemple 2 : Héberger un site statique
docker run -d -p 8080:80 -v $(pwd)/mon-site:/usr/share/nginx/html nginx
🐘 Exemple 3 : Lancer une base PostgreSQL pour développement
docker run --name dev-postgres -e POSTGRES_PASSWORD=secret -p 5432:5432 -d postgres
7. Astuces pratiques
-
Nettoyer les ressources inutiles :
docker system prune -a -
Inspecter un conteneur :
docker inspect <nom ou ID>
-
Accéder à un conteneur en cours :
docker exec -it nom_du_conteneur bash
8. Conclusion
Docker est un outil puissant pour la gestion de conteneurs et l’automatisation des environnements de développement et de production. En quelques lignes de commandes, vous pouvez créer, tester et déployer des applications de façon cohérente et reproductible.