⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Qu'est-ce qu'une image ?

Explication

Étant donné qu'un conteneur est un processus isolé, d'où tire-t-il ses fichiers et sa configuration ? Comment partagez-vous ces environnements ?

C'est là que les images de conteneur entrent en jeu. Une image de conteneur est un paquet standardisé qui inclut tous les fichiers, binaires, bibliothèques et configurations nécessaires pour exécuter un conteneur.

Pour une image PostgreSQL, cette image emballera les binaires de la base de données, les fichiers de configuration et d'autres dépendances. Pour une application web Python, elle inclura le runtime Python, le code de votre application et toutes ses dépendances.

Il y a deux principes importants concernant les images :

  1. Les images sont immuables. Une fois qu'une image est créée, elle ne peut pas être modifiée. Vous ne pouvez que créer une nouvelle image ou y ajouter des modifications.

  2. Les images de conteneur sont composées de couches. Chaque couche représente un ensemble de modifications du système de fichiers qui ajoutent, suppriment ou modifient des fichiers.

Ces deux principes vous permettent d'étendre ou d'ajouter à des images existantes. Par exemple, si vous construisez une application Python, vous pouvez partir de l'image Python et ajouter des couches supplémentaires pour installer les dépendances de votre application et ajouter votre code. Cela vous permet de vous concentrer sur votre application, plutôt que sur Python lui-même.

Trouver des images

Docker Hub est le marché mondial par défaut pour le stockage et la distribution d'images. Il contient plus de 100 000 images créées par des développeurs que vous pouvez exécuter localement. Vous pouvez rechercher des images Docker Hub et les exécuter directement depuis Docker Desktop.

Docker Hub fournit une variété d'images prises en charge et approuvées par Docker, connues sous le nom de Docker Trusted Content. Celles-ci fournissent des services entièrement gérés ou d'excellents points de départ pour vos propres images. Celles-ci incluent :

  • Images officielles Docker - un ensemble organisé de dépôts Docker, servant de point de départ pour la majorité des utilisateurs, et comptant parmi les plus sécurisés sur Docker Hub
  • Éditeurs vérifiés par Docker - des images de haute qualité provenant d'éditeurs commerciaux vérifiés par Docker
  • Open Source sponsorisé par Docker - des images publiées et maintenues par des projets open source sponsorisés par Docker via le programme open source de Docker

Par exemple, Redis et Memcached sont quelques-unes des images officielles Docker prêtes à l'emploi les plus populaires. Vous pouvez télécharger ces images et faire fonctionner ces services en quelques secondes. Il existe également des images de base, comme l'image Docker Node.js, que vous pouvez utiliser comme point de départ et y ajouter vos propres fichiers et configurations.

Essayez-le

Dans cette prise en main, vous apprendrez à rechercher et à extraire une image de conteneur à l'aide de l'interface graphique de Docker Desktop.

Rechercher et télécharger une image

  1. Ouvrez le tableau de bord de Docker Desktop et sélectionnez la vue Images dans le menu de navigation de gauche.

    Une capture d'écran du tableau de bord de Docker Desktop montrant la vue des images dans la barre latérale gauche
  2. Sélectionnez le bouton Rechercher des images à exécuter. Si vous ne le voyez pas, sélectionnez la barre de recherche globale en haut de l'écran.

    Une capture d'écran du tableau de bord de Docker Desktop montrant l'onglet de recherche
  3. Dans le champ Rechercher, entrez "welcome-to-docker". Une fois la recherche terminée, sélectionnez l'image docker/welcome-to-docker.

    Une capture d'écran du tableau de bord de Docker Desktop montrant les résultats de la recherche pour l'image docker/welcome-to-docker
  4. Sélectionnez Extraire pour télécharger l'image.

En savoir plus sur l'image

Une fois que vous avez téléchargé une image, vous pouvez obtenir de nombreux détails sur l'image via l'interface graphique ou la CLI.

  1. Dans le tableau de bord de Docker Desktop, sélectionnez la vue Images.

  2. Sélectionnez l'image docker/welcome-to-docker pour ouvrir les détails de l'image.

    Une capture d'écran du tableau de bord de Docker Desktop montrant la vue des images avec une flèche pointant vers l'image docker/welcome-to-docker
  3. La page de détails de l'image vous présente des informations sur les couches de l'image, les paquets et bibliothèques installés dans l'image, et toutes les vulnérabilités découvertes.

    Une capture d'écran de la vue des détails de l'image pour l'image docker/welcome-to-docker

Suivez les instructions pour rechercher et extraire une image Docker à l'aide de la CLI pour afficher ses couches.

Rechercher et télécharger une image

  1. Ouvrez un terminal et recherchez des images à l'aide de la commande docker search :

    docker search docker/welcome-to-docker
    

    Vous verrez une sortie comme la suivante :

    NAME                       DESCRIPTION                                     STARS     OFFICIAL
    docker/welcome-to-docker   Docker image for new users getting started w…   20
    

    Cette sortie vous montre des informations sur les images pertinentes disponibles sur Docker Hub.

  2. Extrayez l'image à l'aide de la commande docker pull.

    docker pull docker/welcome-to-docker
    

    Vous verrez une sortie comme la suivante :

    Using default tag: latest
    latest: Pulling from docker/welcome-to-docker
    579b34f0a95b: Download complete
    d11a451e6399: Download complete
    1c2214f9937c: Download complete
    b42a2f288f4d: Download complete
    54b19e12c655: Download complete
    1fb28e078240: Download complete
    94be7e780731: Download complete
    89578ce72c35: Download complete
    Digest: sha256:eedaff45e3c78538087bdd9dc7afafac7e110061bbdd836af4104b10f10ab693
    Status: Downloaded newer image for docker/welcome-to-docker:latest
    docker.io/docker/welcome-to-docker:latest
    

    Chaque ligne représente une couche différente téléchargée de l'image. N'oubliez pas que chaque couche est un ensemble de modifications du système de fichiers et fournit des fonctionnalités de l'image.

En savoir plus sur l'image

  1. Listez vos images téléchargées à l'aide de la commande docker image ls :

    docker image ls
    

    Vous verrez une sortie comme la suivante :

    REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
    docker/welcome-to-docker   latest    eedaff45e3c7   4 months ago   29.7MB
    

    La commande affiche une liste des images Docker actuellement disponibles sur votre système. L'image docker/welcome-to-docker a une taille totale d'environ 29.7 Mo.

    Taille de l'image

    La taille de l'image représentée ici reflète la taille non compressée de l'image, et non la taille de téléchargement des couches.

  2. Listez les couches de l'image à l'aide de la commande docker image history :

    docker image history docker/welcome-to-docker
    

    Vous verrez une sortie comme la suivante :

    IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
    648f93a1ba7d   4 months ago   COPY /app/build /usr/share/nginx/html # buil…   1.6MB     buildkit.dockerfile.v0
    <missing>      5 months ago   /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
    <missing>      5 months ago   /bin/sh -c #(nop)  STOPSIGNAL SIGQUIT           0B
    <missing>      5 months ago   /bin/sh -c #(nop)  EXPOSE 80                    0B
    <missing>      5 months ago   /bin/sh -c #(nop)  ENTRYPOINT ["/docker-entr…   0B
    <missing>      5 months ago   /bin/sh -c #(nop) COPY file:9e3b2b63db9f8fc7…   4.62kB
    <missing>      5 months ago   /bin/sh -c #(nop) COPY file:57846632accc8975…   3.02kB
    <missing>      5 months ago   /bin/sh -c #(nop) COPY file:3b1b9915b7dd898a…   298B
    <missing>      5 months ago   /bin/sh -c #(nop) COPY file:caec368f5a54f70a…   2.12kB
    <missing>      5 months ago   /bin/sh -c #(nop) COPY file:01e75c6dd0ce317d…   1.62kB
    <missing>      5 months ago   /bin/sh -c set -x     && addgroup -g 101 -S …   9.7MB
    <missing>      5 months ago   /bin/sh -c #(nop)  ENV PKG_RELEASE=1            0B
    <missing>      5 months ago   /bin/sh -c #(nop)  ENV NGINX_VERSION=1.25.3     0B
    <missing>      5 months ago   /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
    <missing>      5 months ago   /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B
    <missing>      5 months ago   /bin/sh -c #(nop) ADD file:ff3112828967e8004…   7.66MB
    

    Cette sortie vous montre toutes les couches, leurs tailles et la commande utilisée pour créer la couche.

    Afficher la commande complète

    Si vous ajoutez l'indicateur --no-trunc à la commande, vous verrez la commande complète. Notez que, comme la sortie est dans un format de type tableau, les commandes plus longues rendront la sortie très difficile à parcourir.

Dans cette présentation, vous avez recherché et extrait une image Docker. En plus d'extraire une image Docker, vous avez également appris sur les couches d'une image Docker.

Ressources supplémentaires

Les ressources suivantes vous aideront à en savoir plus sur l'exploration, la recherche et la construction d'images :

Prochaines étapes

Maintenant que vous avez appris les bases des images, il est temps d'apprendre à distribuer des images via des registres.