Introduction
Docker a révolutionné le développement logiciel en fournissant une plateforme puissante pour la conteneurisation. Ce tutoriel complet vous guidera à travers les commandes Docker fondamentales, aidant les développeurs et les administrateurs système à comprendre comment gérer efficacement les conteneurs, les images et les réseaux Docker. Que vous soyez débutant ou que vous souhaitiez rafraîchir vos compétences Docker, ce guide fournira des informations pratiques sur l'utilisation de l'interface de ligne de commande de Docker.
Concepts Fondamentaux de Docker
Qu'est-ce que Docker ?
Docker est une plateforme open-source conçue pour automatiser le déploiement, le dimensionnement et la gestion des applications grâce à la conteneurisation. Elle permet aux développeurs d'emballer les applications avec toutes leurs dépendances dans des unités standardisées appelées conteneurs, qui peuvent fonctionner de manière cohérente sur différents environnements informatiques.
Concepts Clés de Docker
1. Conteneurs
Les conteneurs sont des paquets exécutables autonomes et légers qui incluent tout ce dont une application a besoin pour fonctionner :
- Code
- Runtime
- Outils système
- Bibliothèques système
- Paramètres
graph LR
A[Code de l'application] --> B[Conteneur]
C[Dépendances] --> B
D[Bibliothèques système] --> B
E[Configuration] --> B
2. Images
Les images Docker sont des modèles en lecture seule utilisés pour créer des conteneurs. Elles servent de modèles pour la création de conteneurs et peuvent être stockées dans des registres comme Docker Hub.
3. Dockerfile
Un Dockerfile est un document texte contenant les instructions pour la création d'une image Docker. Il définit l'environnement, les dépendances et la configuration d'une application.
Exemple de Dockerfile :
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]
4. Architecture de Docker
graph TB
A[Client Docker] --> B[Daemon Docker]
B --> C[Runtime du conteneur]
B --> D[Registre d'images]
B --> E[Stockage d'images]
5. Conteneur vs Machines Virtuelles
| Caractéristique | Conteneurs | Machines Virtuelles |
|---|---|---|
| Utilisation des ressources | Léger | Important |
| Temps de démarrage | Quelques secondes | Quelques minutes |
| Niveau d'isolation | Niveau processus | Niveau système complet |
| Performances | Élevées | Moindres |
Avantages de Docker
- Cohérence entre les environnements
- Déploiement plus rapide
- Scalabilité améliorée
- Meilleure utilisation des ressources
- Gestion simplifiée des dépendances
Cas d'utilisation
- Architecture microservices
- Intégration continue/déploiement continu (CI/CD)
- Développement d'applications cloud natives
- Tests d'applications simplifiés
Démarrage avec LabEx
LabEx fournit des environnements d'apprentissage interactifs Docker qui aident les développeurs à comprendre et à mettre en pratique rapidement les technologies de conteneurisation.
Guide d'installation de Docker
Prérequis
Avant d'installer Docker, assurez-vous que votre système Ubuntu 22.04 répond aux exigences suivantes :
- Système d'exploitation 64 bits
- Version du noyau 3.10 ou supérieure
- Ressources système suffisantes
Méthodes d'installation
1. Installation à partir du dépôt
Étape 1 : Mettre à jour l'index des paquets
sudo apt-get update
Étape 2 : Installer les paquets requis
sudo apt update
sudo apt-get install ca-certificates curl gnupg lsb-release
Étape 3 : Ajouter la clé GPG officielle de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Étape 4 : Configurer le dépôt Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Étape 5 : Installer le moteur Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Vérifier l'installation
sudo docker --version
sudo docker run hello-world
Flux d'installation
graph TD
A[Mettre à jour le système] --> B[Installer les dépendances]
B --> C[Ajouter la clé GPG]
C --> D[Configurer le dépôt]
D --> E[Installer Docker]
E --> F[Vérifier l'installation]
Étapes post-installation
1. Gérer Docker en tant qu'utilisateur non root
sudo usermod -aG docker $USER
newgrp docker
2. Configurer Docker pour le démarrage au démarrage
sudo systemctl enable docker
sudo systemctl start docker
Options d'installation de Docker
| Méthode | Avantages | Inconvénients |
|---|---|---|
| Dépôt | Mises à jour faciles | Nécessite une connexion internet |
| Paquet officiel | Contrôle direct | Mises à jour manuelles |
| Installation par script | Configuration rapide | Moins sécurisé |
Dépannage des problèmes courants
- Vérifier la compatibilité du système
- Vérifier la connectivité réseau
- S'assurer qu'il y a suffisamment d'espace disque
- Mettre à jour régulièrement les paquets système
Environnement d'apprentissage Docker de LabEx
LabEx fournit des tutoriels interactifs d'installation de Docker et des environnements de pratique pratiques pour aider les développeurs à maîtriser rapidement et efficacement les technologies de conteneurisation.
Configuration système recommandée
| Composant | Spécification minimale |
|---|---|
| CPU | 2 cœurs |
| RAM | 4 Go |
| Espace disque | 20 Go |
| OS | Ubuntu 22.04 LTS |
Commandes Docker de Base
Structure des commandes Docker
Les commandes Docker suivent une syntaxe standard :
docker [commande] [options] [arguments]
Commandes de gestion d'images
1. Télécharger des images
docker pull ubuntu:latest
docker pull nginx:alpine
2. Lister les images
docker images
docker image ls
3. Supprimer des images
docker rmi ubuntu:latest
docker image rm nginx:alpine
Commandes de gestion de conteneurs
1. Créer et exécuter des conteneurs
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
2. Lister les conteneurs
docker ps ## Conteneurs en cours d'exécution
docker ps -a ## Tous les conteneurs
3. Démarrer, arrêter, redémarrer des conteneurs
docker start web-server
docker stop web-server
docker restart web-server
4. Supprimer des conteneurs
docker rm web-server
docker container prune ## Supprimer tous les conteneurs arrêtés
Commandes d'interaction avec les conteneurs
1. Exécuter des commandes dans un conteneur
docker exec -it web-server bash
docker exec web-server ls /var/www/html
2. Afficher les journaux des conteneurs
docker logs web-server
docker logs -f web-server ## Suivre la sortie des journaux
Flux de travail Docker
graph TD
A[Télécharger l'image] --> B[Créer le conteneur]
B --> C[Démarrer le conteneur]
C --> D[Interagir/Exécuter]
D --> E[Arrêter le conteneur]
E --> F[Supprimer le conteneur]
Commandes Docker avancées
1. Construire des images personnalisées
docker build -t myapp:v1 .
2. Volumes Docker
docker volume create myvolume
docker run -v myvolume:/app nginx
3. Gestion du réseau
docker network create mynetwork
docker run --network mynetwork nginx
Catégories courantes de commandes Docker
| Catégorie | But | Exemples de commandes |
|---|---|---|
| Gestion des images | Gérer les images Docker | pull, push, build |
| Gestion des conteneurs | Contrôler les conteneurs | run, start, stop |
| Gestion du système | Informations système Docker | info, version |
| Gestion du réseau | Gérer les réseaux | network create |
| Gestion des volumes | Gérer les données persistantes | volume create |
Bonnes pratiques
- Utiliser des balises d'image spécifiques
- Nettoyer les ressources inutilisées
- Utiliser Docker Compose pour les configurations complexes
- Implémenter des builds multi-étapes
Apprentissage Docker de LabEx
LabEx propose des environnements interactifs pour pratiquer ces commandes Docker, aidant les développeurs à acquérir efficacement des compétences pratiques en conteneurisation.
Options de commandes Docker utiles
| Option | Description | Exemple |
|---|---|---|
-d |
Mode détaché | docker run -d nginx |
-it |
Terminal interactif | docker run -it ubuntu |
--name |
Nommer un conteneur | docker run --name web nginx |
-p |
Mappage de ports | docker run -p 8080:80 nginx |
Résumé
En maîtrisant ces commandes Docker de base, vous avez acquis des compétences essentielles pour la gestion et le déploiement de conteneurs. Docker offre une solution robuste pour créer, exécuter et gérer des conteneurs dans différents environnements. En poursuivant l'exploration des fonctionnalités de Docker, n'oubliez pas que ces commandes fondamentales constituent la base de stratégies de conteneurisation efficaces. Entraînez-vous et expérimentez avec ces commandes pour devenir compétent dans la technologie Docker et optimiser vos flux de travail de développement.



