Comment rechercher des images Docker

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Docker est devenu un outil essentiel pour le développement logiciel moderne, permettant aux développeurs d'empaqueter et de déployer des applications de manière cohérente et fiable. Les images Docker servent d'éléments constitutifs pour les applications conteneurisées, fournissant des environnements préconfigurés qui peuvent être facilement partagés et déployés.

Dans ce laboratoire pratique, vous apprendrez à rechercher des images Docker en utilisant l'interface de ligne de commande Docker, à extraire (pull) ces images sur votre machine locale et à exécuter des conteneurs basés sur ces images. À la fin de ce tutoriel, vous aurez les compétences nécessaires pour trouver et utiliser des images Docker qui répondent aux exigences spécifiques de votre projet.

Vérification de l'installation de Docker

Avant de commencer à rechercher des images Docker, vérifions d'abord que Docker est correctement installé et en cours d'exécution sur votre système.

Vérification de l'installation de Docker

Ouvrez une fenêtre de terminal et exécutez la commande suivante pour vérifier si Docker est installé :

docker --version

Vous devriez voir une sortie similaire à celle-ci :

Docker version 20.10.21, build baeda1f

Ceci confirme que Docker est installé sur votre système. Le numéro de version peut être différent selon votre installation.

Vérification de l'état du service Docker

Vérifions également si le service Docker est en cours d'exécution en exécutant :

sudo systemctl status docker

Vous devriez voir une sortie indiquant que le service Docker est actif et en cours d'exécution :

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since...

Si, pour une raison quelconque, Docker n'est pas en cours d'exécution, vous pouvez le démarrer avec :

sudo systemctl start docker

Comprendre les images Docker

Une image Docker est un modèle en lecture seule contenant un ensemble d'instructions pour créer un conteneur. Vous pouvez considérer une image comme un instantané ou un plan d'une application ainsi que son environnement, ses dépendances et sa configuration.

Les images Docker sont :

  • En couches (Layered) : Construites à l'aide d'une série de couches qui peuvent être partagées entre les images
  • En lecture seule (Read-only) : Ne peuvent pas être modifiées une fois créées
  • Nommées et taguées (Named and tagged) : Identifiées par un nom et une balise (tag) optionnelle (par exemple, ubuntu:22.04)

Dans l'étape suivante, nous allons apprendre à rechercher ces images.

Recherche d'images Docker

Docker Hub est le registre public officiel des images Docker. Il contient des milliers d'images, y compris des images officielles maintenues par les fournisseurs de logiciels et des images communautaires créées par les utilisateurs de Docker.

Recherche d'images de base

Pour rechercher des images Docker, utilisez la commande docker search suivie d'un terme de recherche. Recherchons des images Ubuntu :

docker search ubuntu

Vous verrez une sortie similaire à celle-ci :

NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                           Ubuntu is a Debian-based Linux operating sys…   14938     [OK]
ubuntu-upstart                   Upstart is an event-based replacement for th…   112       [OK]
rastasheep/ubuntu-sshd           Dockerized SSH service, built on top of offi…   254                  [OK]
...

La sortie affiche :

  • NAME : Le nom de l'image
  • DESCRIPTION : Une brève description de l'image
  • STARS : Nombre d'utilisateurs ayant mis une étoile à l'image (indicateur de popularité)
  • OFFICIAL : Tag indiquant une image officielle maintenue par le fournisseur de logiciels
  • AUTOMATED : Tag indiquant une image construite par un processus automatisé

Filtrage des résultats de recherche

Vous pouvez filtrer les résultats de recherche en utilisant l'option --filter. Par exemple, pour afficher uniquement les images officielles :

docker search --filter=is-official=true ubuntu

Pour trouver des images avec au moins 100 étoiles (images populaires) :

docker search --filter=stars=100 ubuntu

Vous pouvez également combiner plusieurs filtres :

docker search --filter=is-official=true --filter=stars=100 nginx

Cette commande recherche les images Nginx officielles avec au moins 100 étoiles.

Recherche de versions spécifiques

La commande docker search n'affiche pas les tags (versions) des images, mais vous pouvez les trouver en :

  1. Visitant le site web Docker Hub (hub.docker.com)
  2. Utilisant la commande docker image inspect (après avoir extrait l'image)

Par exemple, pour voir toutes les versions Ubuntu disponibles, visitez :
https://hub.docker.com/_/ubuntu?tab=tags

Choisir la bonne image

Lors de la sélection d'une image Docker, tenez compte des éléments suivants :

  1. Images officielles (Official images) : Privilégiez les images officielles car elles sont maintenues par le fournisseur de logiciels
  2. Images populaires (Popular images) : Un nombre d'étoiles plus élevé indique plus d'utilisateurs et potentiellement une meilleure maintenance
  3. Mises à jour récentes (Recent updates) : Vérifiez la date de la dernière mise à jour de l'image
  4. Documentation : Recherchez des images avec une bonne documentation
  5. Taille (Size) : Tenez compte de la taille de l'image, car les images plus petites se téléchargent plus rapidement

Téléchargement d'images Docker

Une fois que vous avez trouvé une image que vous souhaitez utiliser, vous pouvez la télécharger sur votre machine locale avec la commande docker pull.

Extraction d'une image (Pulling an Image)

Extrayons l'image Ubuntu officielle :

docker pull ubuntu

Vous verrez une sortie similaire à :

Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

Par défaut, Docker extrait le tag latest. Pour extraire une version spécifique, ajoutez un tag :

docker pull ubuntu:20.04

Vous verrez une sortie affichant la progression du téléchargement pour cette version spécifique.

Lister les images téléchargées

Pour voir toutes les images que vous avez téléchargées, utilisez :

docker images

Ou le nouveau format de commande :

docker image ls

Les deux commandes produisent la même sortie :

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    1318b700e415   4 weeks ago   72.8MB
ubuntu       20.04     1318b700e415   4 weeks ago   72.8MB

Comprendre les tags d'image (Image Tags)

Les images Docker sont identifiées par des tags. Le format du tag est généralement :

repository:tag

Où :

  • repository : Généralement au format username/image-name ou simplement image-name pour les images officielles
  • tag : Spécifie la version (par exemple, latest, 20.04, 3.9-alpine)

Si vous omettez le tag, Docker suppose que vous souhaitez le tag latest.

Obtenir les détails de l'image

Pour afficher des informations détaillées sur une image, utilisez :

docker image inspect ubuntu:latest

Cette commande affiche un objet JSON avec toutes les métadonnées de l'image, y compris les couches, la configuration et les variables d'environnement.

Pour voir l'historique des couches de l'image :

docker history ubuntu:latest

Cela montre comment l'image a été construite, couche par couche.

Exécution de conteneurs à partir d'images

Maintenant que vous avez téléchargé des images Docker, apprenons à créer et à exécuter des conteneurs basés sur ces images.

Exécution d'un conteneur de base

Pour exécuter un conteneur à partir d'une image, utilisez la commande docker run :

docker run ubuntu echo "Hello from Docker"

Cette commande :

  1. Crée un nouveau conteneur basé sur l'image Ubuntu
  2. Exécute la commande echo "Hello from Docker" à l'intérieur du conteneur
  3. Quitte après l'exécution de la commande

Vous devriez voir la sortie :

Hello from Docker

Exécution d'un conteneur interactif

Pour interagir avec un conteneur, utilisez les flags -it (terminal interactif) :

docker run -it ubuntu bash

Cela démarre un shell bash à l'intérieur du conteneur. Vous êtes maintenant effectivement "à l'intérieur" du conteneur et pouvez exécuter des commandes.

Essayez quelques commandes :

ls
cat /etc/os-release

Pour quitter le conteneur, tapez :

exit

Lister les conteneurs en cours d'exécution

Pour voir tous les conteneurs en cours d'exécution :

docker ps

Étant donné que nos conteneurs se sont arrêtés immédiatement après l'exécution, vous pourriez ne voir aucune sortie. Pour voir tous les conteneurs, y compris ceux qui sont arrêtés :

docker ps -a

Cela affiche tous les conteneurs, leur statut et quand ils ont été créés/arrêtés.

Cycle de vie d'un conteneur (Container Lifecycle)

Les conteneurs ont un cycle de vie :

  1. Created (Créé) : Le conteneur est créé mais non démarré
  2. Running (En cours d'exécution) : Le conteneur est en cours d'exécution
  3. Paused (En pause) : L'exécution du conteneur est en pause
  4. Stopped (Arrêté) : Le conteneur s'est arrêté mais existe toujours
  5. Removed (Supprimé) : Le conteneur est supprimé

Vous pouvez supprimer un conteneur arrêté avec :

docker rm <container_id>

Remplacez <container_id> par l'ID affiché dans la sortie de docker ps -a.

Pour supprimer automatiquement un conteneur après son arrêt, utilisez le flag --rm :

docker run --rm ubuntu echo "This container will be removed after execution"

Exécution d'un conteneur de serveur web

Essayons quelque chose de plus pratique en exécutant un serveur web Nginx :

docker pull nginx:alpine

Cela extrait une image Nginx légère basée sur Alpine Linux.

Maintenant, exécutez un conteneur qui mappe le port 8080 sur votre hôte vers le port 80 dans le conteneur :

docker run -d -p 8080:80 --name my-nginx nginx:alpine

Cette commande :

  • -d : Exécute le conteneur en mode détaché (arrière-plan)
  • -p 8080:80 : Mappe le port 8080 sur votre hôte vers le port 80 dans le conteneur
  • --name my-nginx : Nomme le conteneur "my-nginx"

Vous pouvez maintenant accéder à la page d'accueil Nginx en naviguant vers http://localhost:8080 dans un navigateur web, ou en utilisant curl :

curl http://localhost:8080

Vous devriez voir le contenu HTML de la page d'accueil Nginx.

Pour arrêter et supprimer ce conteneur :

docker stop my-nginx
docker rm my-nginx

Résumé

Félicitations pour avoir terminé ce laboratoire de recherche et d'utilisation d'images Docker. Tout au long de ce tutoriel, vous avez :

  1. Vérifié votre installation de Docker et compris le concept des images Docker
  2. Appris à rechercher des images Docker en utilisant la commande docker search
  3. Téléchargé des images Docker sur votre machine locale en utilisant docker pull
  4. Listé et inspecté vos images Docker locales
  5. Créé et exécuté des conteneurs à partir de ces images en utilisant diverses options de docker run
  6. Compris le cycle de vie des conteneurs et comment gérer les conteneurs

Ces compétences constituent la base pour travailler avec Docker dans vos projets de développement. Vous pouvez maintenant rechercher, télécharger et utiliser des images Docker pour créer des environnements conteneurisés pour vos applications.

Les prochaines étapes de votre parcours Docker pourraient inclure :

  • Apprendre à créer vos propres images Docker avec des Dockerfiles
  • Comprendre le réseau Docker et la persistance des données
  • Explorer Docker Compose pour les applications multi-conteneurs
  • Plonger dans l'orchestration de conteneurs avec Kubernetes

Continuez à expérimenter avec différentes images Docker pour découvrir le vaste écosystème de conteneurs pré-construits disponibles pour accélérer votre flux de travail de développement.