Introduction
Docker a révolutionné la façon dont nous développons, déployons et gérons les applications. Au cœur de cet écosystème se trouvent les images Docker, qui servent d'éléments de base pour la création et l'exécution d'applications conteneurisées. Dans ce tutoriel, nous vous guiderons à travers le processus de récupération (pull) des images Docker depuis un registre (registry), une étape cruciale pour exploiter la puissance de Docker dans vos projets.
À la fin de ce lab, vous serez capable de rechercher des images Docker, de les récupérer depuis Docker Hub, et de comprendre comment les utiliser dans vos applications conteneurisées.
Comprendre les images Docker
Avant de commencer à récupérer (pull) des images Docker, il est important de comprendre ce que sont les images Docker et comment elles fonctionnent.
Qu'est-ce qu'une image Docker ?
Une image Docker est un paquet léger et autonome qui contient tout ce qui est nécessaire pour exécuter une application :
- Code de l'application
- Environnement d'exécution
- Bibliothèques et dépendances
- Variables d'environnement
- Fichiers de configuration
Les images sont les modèles utilisés pour créer des conteneurs Docker, qui sont les instances en cours d'exécution de ces images.
Dépôts d'images Docker
Les images Docker sont stockées dans des dépôts (repositories) au sein de registres (registries). Le registre public le plus populaire est Docker Hub, qui héberge des milliers d'images prêtes à l'emploi. Quelques points clés concernant Docker Hub :
- Il contient des images officielles maintenues par les éditeurs de logiciels
- Il héberge des images contribuées par la communauté et créées par les utilisateurs
- Il permet aux organisations d'avoir des dépôts privés pour les images propriétaires
Nommage des images Docker
Les images Docker suivent une convention de nommage spécifique :
[registry/]username/repository:tag
Où :
registryest le nom d'hôte du registre (optionnel, par défaut Docker Hub)usernameest le nom d'utilisateur ou le nom de l'organisation sur Docker Hubrepositoryest le nom de l'imagetagest la version de l'image (optionnel, par défaut "latest")
Par exemple : ubuntu:22.04 ou nginx:latest
Vérification de votre installation Docker
Avant de continuer, assurons-nous que Docker est correctement installé sur votre système. Ouvrez un terminal et exécutez :
docker --version
Vous devriez voir une sortie similaire à :
Docker version 20.10.21, build baeda1f
Cela confirme que Docker est installé et prêt à être utilisé.
Dans l'étape suivante, nous allons rechercher et récupérer notre première image Docker.
Recherche et récupération de votre première image Docker
Maintenant que nous comprenons ce que sont les images Docker, apprenons à les trouver et à les récupérer depuis Docker Hub.
Recherche d'images Docker
Avant de récupérer une image, vous souhaiterez peut-être rechercher les options disponibles. Utilisez la commande docker search pour trouver des images sur Docker Hub :
docker search ubuntu
Cela vous affichera une liste des images liées à Ubuntu disponibles sur Docker Hub. Vous devriez voir une sortie similaire à :
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating s... 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for ... 111 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 256 [OK]
...
La colonne OFFICIAL marquée avec [OK] indique les images maintenues par Docker ou le fournisseur du logiciel.
Récupération d'une image Docker
Pour télécharger une image Docker sur votre machine locale, utilisez la commande docker pull suivie du nom de l'image :
docker pull ubuntu:22.04
Cette commande récupère l'image Ubuntu 22.04 depuis Docker Hub. Vous devriez voir une progression de téléchargement similaire à :
22.04: Pulling from library/ubuntu
2ab09b027e7f: Pull complete
Digest: sha256:2b7412e6465c3c7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04
La sortie montre que Docker télécharge des couches individuelles de l'image. Chaque couche représente un ensemble de modifications du système de fichiers.
Récupération d'images sans tag
Si vous ne spécifiez pas de tag, Docker récupérera l'image taguée comme latest :
docker pull nginx
Cela récupérera la dernière version de l'image du serveur web Nginx :
Using default tag: latest
latest: Pulling from library/nginx
a603fa5e3b41: Pull complete
(...more layers...)
Digest: sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Récupération depuis d'autres registres
Par défaut, docker pull télécharge les images depuis Docker Hub. Pour récupérer depuis d'autres registres, incluez le nom d'hôte du registre :
docker pull mcr.microsoft.com/dotnet/sdk:6.0
Cette commande récupère l'image .NET SDK 6.0 depuis Microsoft Container Registry.
Maintenant que vous avez récupéré quelques images Docker, passons à l'étape suivante pour apprendre à les gérer.
Gestion des images Docker
Après avoir récupéré des images Docker, vous devez savoir comment les lister, les inspecter et les gérer efficacement.
Lister les images Docker
Pour voir toutes les images Docker que vous avez téléchargées sur votre machine locale, utilisez la commande docker images (ou son alias docker image ls) :
docker images
Vous devriez voir une sortie similaire à :
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 58db3edaf2be 3 weeks ago 77.8MB
nginx latest 605c77e624dd 4 weeks ago 142MB
Cette sortie affiche :
REPOSITORY: Le nom de l'imageTAG: La version de l'imageIMAGE ID: Un identifiant unique pour l'imageCREATED: Quand l'image a été crééeSIZE: La taille de l'image sur le disque
Inspecter les images Docker
Pour obtenir des informations détaillées sur une image spécifique, utilisez la commande docker inspect :
docker inspect ubuntu:22.04
Cette commande affiche un tableau JSON contenant tous les détails sur l'image, notamment :
- Informations sur les couches (layer)
- Variables d'environnement
- Architecture
- Système d'exploitation
- Configuration
La sortie est assez longue et détaillée. Voici un extrait de ce que vous pourriez voir :
[
{
"Id": "sha256:58db3edaf2beXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"RepoTags": [
"ubuntu:22.04"
],
"RepoDigests": [
"ubuntu@sha256:2b7412e6465c3fc7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f"
],
...
}
]
Historique de l'image
Pour voir l'historique des couches (layer) d'une image (comment elle a été construite), utilisez la commande docker history :
docker history ubuntu:22.04
La sortie affiche chaque couche qui compose l'image :
IMAGE CREATED CREATED BY SIZE
58db3edaf2be 3 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:15efc167a417... 77.8MB
Suppression des images Docker
Lorsque vous n'avez plus besoin d'une image, vous pouvez la supprimer pour libérer de l'espace disque en utilisant la commande docker rmi :
docker rmi nginx
En cas de succès, Docker affiche les ID des images supprimées :
Untagged: nginx:latest
Untagged: nginx@sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Deleted: sha256:605c77e624ddb75e6110f997c58876bba43f0blindividualayeridshereXX
(...more layers deleted...)
Si l'image est utilisée par un conteneur, vous devrez d'abord supprimer le conteneur ou utiliser l'option -f (force) :
docker rmi -f nginx
Vous savez maintenant comment gérer vos images Docker. Passons à l'étape finale où nous allons réellement utiliser une image pour exécuter un conteneur.
Utilisation des images Docker
Récupérer des images Docker n'est que la première étape. Apprenons maintenant comment utiliser ces images pour exécuter des conteneurs.
Exécution d'un conteneur à partir d'une image
Pour créer et démarrer un conteneur à partir d'une image, utilisez la commande docker run :
docker run ubuntu:22.04 echo "Hello from Ubuntu container"
Cette commande :
- Crée un nouveau conteneur à partir de l'image
ubuntu:22.04 - Exécute la commande
echo "Hello from Ubuntu container"à l'intérieur du conteneur - Affiche la sortie :
Hello from Ubuntu container
Après l'exécution de la commande, le conteneur s'arrête car il a terminé sa tâche.
Exécution d'un conteneur interactif
Pour démarrer un shell interactif à l'intérieur d'un conteneur, utilisez les options -i (interactive) et -t (terminal) :
docker run -it ubuntu:22.04 bash
Cela vous donne un shell bash à l'intérieur du conteneur Ubuntu où vous pouvez exécuter des commandes :
root@a1b2c3d4e5f6:/## ls
bin dev home lib32 libx32 mnt proc run srv tmp var
boot etc lib lib64 media opt root sbin sys usr
Pour quitter le conteneur, tapez exit ou appuyez sur Ctrl+D :
root@a1b2c3d4e5f6:/## exit
exit
Exécution d'un conteneur en mode détaché
Pour exécuter un conteneur en arrière-plan (mode détaché), utilisez l'option -d :
docker run -d --name nginx-server -p 8080:80 nginx
Cette commande :
- Crée un conteneur nommé
nginx-serverà partir de l'imagenginx - L'exécute en mode détaché (
-d) - Mappe le port 8080 sur votre hôte vers le port 80 dans le conteneur
- Renvoie un ID de conteneur :
e1d0ac1dcb21a93d9d878dcf40c054eb9f3c2b1bf5ecce7c29b6fa8ce6b219c1
Accès au conteneur en cours d'exécution
Vous pouvez maintenant accéder au serveur web Nginx à l'adresse http://localhost:8080 dans votre navigateur, ou utiliser curl pour vérifier qu'il fonctionne :
curl localhost:8080
Cela devrait afficher la page d'accueil HTML de Nginx :
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
Lister les conteneurs en cours d'exécution
Pour voir tous les conteneurs en cours d'exécution, utilisez :
docker ps
Cela affiche des informations sur vos conteneurs en cours d'exécution :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e1d0ac1dcb21 nginx "/docker-entrypoint.…" 30 seconds ago Up 29 seconds 0.0.0.0:8080->80/tcp nginx-server
Arrêt et suppression des conteneurs
Pour arrêter un conteneur en cours d'exécution :
docker stop nginx-server
Pour supprimer un conteneur arrêté :
docker rm nginx-server
Vous avez maintenant utilisé avec succès les images Docker pour exécuter des conteneurs. C'est le flux de travail fondamental pour utiliser Docker dans vos processus de développement et de déploiement.
Résumé
Félicitations pour avoir terminé ce lab sur les images Docker. Vous avez acquis les compétences essentielles pour travailler avec les images Docker :
- Comprendre ce que sont les images Docker et comment elles sont organisées dans les registres (registries)
- Rechercher et récupérer des images Docker depuis Docker Hub
- Gérer vos images Docker locales, y compris les lister, les inspecter et les supprimer
- Utiliser les images Docker pour exécuter des conteneurs dans différents modes
Ces compétences constituent les bases du travail avec Docker et vous permettront de tirer parti de la conteneurisation dans votre flux de travail de développement. Vous pouvez maintenant récupérer n'importe quelle image Docker à partir de registres publics ou privés et les utiliser pour exécuter des applications conteneurisées.
Prochaines étapes pour un apprentissage plus approfondi :
- Créer vos propres images Docker avec des Dockerfiles
- Travailler avec Docker Compose pour les applications multi-conteneurs
- Utiliser les volumes Docker pour le stockage persistant
- Configurer le réseau des conteneurs
Continuez à explorer le vaste écosystème d'images Docker disponibles sur Docker Hub pour trouver des outils et des applications qui peuvent accélérer votre processus de développement.



