Comment utiliser efficacement l'interface de ligne de commande Docker (CLI)

DockerBeginner
Pratiquer maintenant

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

  1. Démon Docker : Service en arrière-plan gérant les objets Docker
  2. Client Docker : Outil CLI pour interagir avec le démon
  3. 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

  1. Toujours utiliser des balises d'image spécifiques
  2. Supprimer les conteneurs et les images inutiles
  3. Utiliser des volumes pour les données persistantes
  4. 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

  1. Utiliser des balises d'image spécifiques
  2. Implémenter des builds multi-étapes
  3. Minimiser la taille de l'image
  4. 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.