Introduction
L'interface de ligne de commande Docker (Docker CLI) est un outil puissant qui permet aux développeurs d'interagir avec les conteneurs, les images et les réseaux Docker via des interfaces de ligne de commande. Ce tutoriel complet vous guidera à travers les techniques essentielles de la Docker CLI, vous aidant à comprendre comment gérer et manipuler efficacement les conteneurs, à construire des environnements de développement robustes et à optimiser votre flux de travail de conteneurisation.
Notions de base de la Docker CLI
Qu'est-ce que la Docker CLI ?
L'interface de ligne de commande Docker (CLI) est un outil puissant qui permet aux utilisateurs d'interagir avec le démon Docker et de gérer les conteneurs, les images, les réseaux et les volumes. Elle fournit une interface textuelle pour exécuter des commandes Docker et effectuer diverses opérations.
Installation et configuration
Avant d'utiliser la Docker CLI, assurez-vous que Docker est installé sur votre système Ubuntu 22.04 :
## Mettre à jour l'index des paquets
sudo apt update
## Installer Docker
sudo apt install docker.io
## Vérifier l'installation
docker --version
Structure de base de la Docker CLI
Les commandes Docker CLI suivent une syntaxe standard :
docker <objet> <commande> <options>
Catégories de commandes
| Catégorie | Fonction |
|---|---|
| Commandes de gestion | Gérer les objets Docker |
| Commandes d'images | Extraire, construire et gérer les images |
| Commandes de conteneurs | Créer, exécuter et contrôler les conteneurs |
| Commandes de réseau | Configurer les réseaux Docker |
| Commandes de volumes | Gérer le stockage de données persistant |
Authentification et permissions
graph TD
A[Utilisateur] --> B{Docker CLI}
B --> |Nécessite Sudo| C[Permissions racine]
B --> |Groupe utilisateur| D[Accès au groupe Docker]
Pour éviter d'utiliser sudo pour chaque commande, ajoutez votre utilisateur au groupe docker :
## Ajouter l'utilisateur actuel au groupe docker
sudo usermod -aG docker $USER
## Redémarrer la session
newgrp docker
Configuration de la Docker CLI
Les fichiers de configuration se trouvent généralement dans :
/etc/docker/daemon.json(global)~/.docker/config.json(utilisateur)
Concepts clés
- Démon Docker : Service en arrière-plan gérant les objets Docker
- Client Docker : Outil CLI pour interagir avec le démon
- Objets Docker : Images, conteneurs, réseaux, volumes
En comprenant ces bases, les utilisateurs peuvent tirer pleinement parti de la Docker CLI pour les tâches de conteneurisation. LabEx recommande de pratiquer ces commandes fondamentales pour construire une base solide dans la gestion de Docker.
Commandes Docker courantes
Commandes de gestion d'images
Extraction d'images
## Extraire une image à partir de Docker Hub
docker pull ubuntu:latest
docker pull nginx:1.21
Liste des images
## Lister toutes les images locales
docker images
docker image ls
Construction d'images
## Construire une image à partir de Dockerfile
docker build -t myapp:v1 .
Opérations sur les conteneurs
Exécution de conteneurs
## Exécuter un nouveau conteneur
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
Commandes de gestion des conteneurs
| Commande | Description | Exemple |
|---|---|---|
docker ps |
Lister les conteneurs en cours d'exécution | docker ps |
docker ps -a |
Lister tous les conteneurs | docker ps -a |
docker start |
Démarrer un conteneur arrêté | docker start web-server |
docker stop |
Arrêter un conteneur en cours d'exécution | docker stop web-server |
docker rm |
Supprimer un conteneur | docker rm web-server |
Commandes de réseau
graph TD
A[Commandes de réseau Docker]
A --> B[Créer un réseau]
A --> C[Lister les réseaux]
A --> D[Inspecter un réseau]
Opérations sur les réseaux
## Créer un réseau personnalisé
docker network create mynetwork
## Lister les réseaux
docker network ls
## Connecter un conteneur au réseau
docker network connect mynetwork web-server
Gestion des volumes
## Créer un volume
docker volume create mydata
## Lister les volumes
docker volume ls
## Monter un volume dans un conteneur
docker run -v mydata:/app nginx
Débogage et inspection
## Afficher les journaux du conteneur
docker logs web-server
## Exécuter une commande dans un conteneur en cours d'exécution
docker exec -it web-server bash
## Inspecter les détails du conteneur
docker inspect web-server
Commandes avancées
Nettoyage
## Supprimer les images inutilisées
docker image prune
## Supprimer tous les conteneurs arrêtés
docker container prune
Bonnes pratiques
- Toujours utiliser des balises d'image spécifiques
- Supprimer les conteneurs et les images inutiles
- Utiliser des volumes pour les données persistantes
- Exploiter l'isolation du réseau
LabEx recommande de maîtriser ces commandes Docker CLI courantes pour gérer efficacement les environnements conteneurisés.
Modèles de flux de travail CLI
Flux de travail de développement
graph TD
A[Développement de code] --> B[Construire l'image Docker]
B --> C[Tester le conteneur]
C --> D[Pousser vers le registre]
D --> E[Déplacer le conteneur]
Cycle de développement typique
## Cloner le projet
git clone https://github.com/example/project
## Créer le Dockerfile
touch Dockerfile
## Construire l'image
docker build -t myapp:dev .
## Exécuter le conteneur pour les tests
docker run -d --name test-container myapp:dev
Flux de travail d'intégration continue
Construction et tests
## Construire l'image avec des arguments de construction
docker build --build-arg ENV=development -t myapp:ci .
## Exécuter les tests automatisés
docker run --rm myapp:ci npm test
Gestion du cycle de vie des conteneurs
Étapes du flux de travail
| Étape | Commande Docker | Objectif |
|---|---|---|
| Construction | docker build |
Créer l'image |
| Test | docker run |
Valider le conteneur |
| Pousser | docker push |
Partager l'image |
| Déploiement | docker run |
Exécuter en production |
Déploiement multi-conteneurs
Flux de travail Docker Compose
## Définir les services dans docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8000:80"
database:
image: postgres:latest
## Démarrer l'environnement multi-conteneurs
docker-compose up -d
Modèle de microservices
graph TD
A[Service API] --> B[Service de base de données]
A --> C[Service de cache]
A --> D[Service d'authentification]
Gestion des services
## Créer un réseau pour les microservices
docker network create microservices-net
## Exécuter les services avec la connexion réseau
docker run -d --name api --network microservices-net myapi
docker run -d --name database --network microservices-net mydb
Flux de travail de débogage
Étapes de dépannage
## Inspecter les journaux du conteneur
docker logs api-service
## Exécuter un shell interactif
docker exec -it api-service /bin/bash
## Vérifier l'utilisation des ressources du conteneur
docker stats api-service
Flux de travail de déploiement de production
Stratégie de balisage d'image
## Baliser l'image pour la production
docker tag myapp:latest myregistry.com/myapp:v1.0
## Pousser vers un registre privé
docker push myregistry.com/myapp:v1.0
## Extraire et exécuter en production
docker pull myregistry.com/myapp:v1.0
docker run -d myregistry.com/myapp:v1.0
Bonnes pratiques
- Utiliser des balises d'image spécifiques
- Implémenter des builds multi-étapes
- Minimiser la taille de l'image
- Utiliser Docker Compose pour les configurations complexes
LabEx recommande de pratiquer ces modèles de flux de travail pour rationaliser la gestion et le déploiement des conteneurs Docker.
Résumé
En maîtrisant les commandes CLI de Docker et les modèles de flux de travail, les développeurs peuvent considérablement améliorer leurs compétences en gestion de conteneurs. Ce tutoriel vous a fourni les techniques fondamentales pour naviguer, créer, gérer et optimiser les conteneurs Docker, vous permettant de tirer pleinement parti du potentiel de Docker dans les scénarios modernes de développement et de déploiement de logiciels.



