2022-10-29 07:06 Temps de lecture : 15 min

Tout ce que vous devez savoir sur Docker Hub

Explorons ensemble Docker Hub.

Dans ce tutoriel, nous allons nous pencher sur Docker Hub, en abordant son utilisation, la création d'images personnalisées, et son rôle dans la publication et le téléchargement d'images. Nous explorerons également certains des dépôts populaires disponibles sur Docker Hub. Nous allons naviguer dans les méandres de cette plateforme incontournable pour la gestion d'images conteneurisées.

Prérequis

Il est nécessaire d'avoir une connaissance de base de Docker et de se familiariser avec les environnements Windows et Linux. Ce tutoriel utilise Docker Desktop pour la pratique, notamment la création et l'envoi d'une image vers Docker Hub. Les utilisateurs Windows et Mac peuvent télécharger et installer Docker Desktop depuis ici, tandis que les utilisateurs Linux peuvent consulter ce lien.

Qu'est-ce que Docker Hub ?

Docker Hub est un service de registre de dépôt fourni par Docker Inc., permettant de gérer et partager des images conteneurisées.

Il facilite le téléchargement et l'envoi d'images Docker vers et depuis la plateforme. Considérez-le comme un équivalent de GitHub, où au lieu de gérer du code source, nous gérons des images de conteneurs. Ce référentiel en ligne basé sur le cloud offre un espace de stockage pour les dépôts publics et privés. Les dépôts publics sont accessibles à tous, tandis que les dépôts privés sont réservés à leurs propriétaires, avec un coût associé au-delà d'un certain nombre de dépôts privés.

Fonctionnalités de Docker Hub

Docker Hub propose plusieurs fonctionnalités clés:

#1. Dépôts d'images

Cette fonction permet de rechercher et télécharger des images de conteneurs disponibles sur Docker Hub.

Elle permet également d'envoyer ses propres images, en tant que dépôts publics ou privés.

#2. Équipes et Organisations

Docker Hub permet de créer des groupes de travail et de pousser des dépôts en tant que dépôts privés, accessibles uniquement au sein de l'organisation. Cela facilite le contrôle d'accès aux images de conteneurs privées.

#3. Intégration avec GitHub et Bitbucket

La plateforme offre une intégration avec des référentiels de code source tels que GitHub et Bitbucket, facilitant les processus de développement.

#4. Constructions automatisées

Lorsqu'une modification de code source est poussée vers un référentiel de code, Docker Hub peut détecter ce changement et construire automatiquement de nouvelles images de conteneurs à partir de GitHub ou Bitbucket, avant de les transférer vers Docker Hub.

#5. Webhooks

Les webhooks permettent de déclencher des actions spécifiques après l'envoi réussi d'images. Cette fonction facilite l'intégration de Docker Hub avec d'autres services.

#6. Images officielles et d'éditeur

Les images de qualité fournies par Docker sont considérées comme des images officielles et peuvent être utilisées en toute confiance. De même, les images de haute qualité fournies par des fournisseurs externes sont appelées images d'éditeur ou certifiées. Elles offrent un niveau de support et une garantie de compatibilité avec Docker Enterprise. Nous explorerons plus en détail les images certifiées par la suite.

Création de votre premier dépôt

Pour cela, connectez-vous à Docker Hub en utilisant vos identifiants. Si vous n'avez pas de compte, vous pouvez en créer un en cliquant sur le bouton "Inscription" sur la page web. Une fois connecté, cliquez sur "Créer un dépôt" sur la page d'accueil.

  • Après avoir cliqué sur "Créer un dépôt", il vous sera demandé de nommer votre dépôt.

  • Choisissez ensuite la visibilité du dépôt: public ou privé.

Vous avez également la possibilité d'intégrer vos dépôts de code source, comme GitHub ou BitBucket, via les paramètres de construction, mais cela est optionnel et peut être configuré ultérieurement.

  • Une fois ces paramètres définis, cliquez sur "Créer".

Félicitations! Vous avez créé votre premier dépôt. Il devrait apparaître comme suit:

Docker Hub offre un seul dépôt privé gratuitement. Pour plus de dépôts privés, il est nécessaire de passer à un plan payant.

Ouvrez maintenant l'outil/terminal Docker Desktop, que vous avez préalablement téléchargé et installé, et connectez-vous à Docker Hub en utilisant la commande:

docker login

Exploration des images

Il y a deux façons de rechercher des dépôts publics et des images sur Docker Hub. Vous pouvez soit utiliser le site web, soit la ligne de commande avec la commande ci-dessous. Par exemple, pour chercher l'image du dépôt MySQL:

docker search mysql

Téléchargement d'une image

Pour télécharger une image depuis Docker Hub, utilisez la commande "pull":

# docker pull mysql

Si une image MySQL est déjà présente sur votre machine, la commande ci-dessus la mettra automatiquement à jour vers la dernière version. Il est important de noter, comme le montre la sortie de la commande "search", qu'il existe de nombreuses images MySQL sur Docker Hub. Cela est dû au fait que n'importe qui peut publier une image. Il est donc nécessaire de choisir l'image la plus appropriée en fonction de vos besoins.

Supposons que vous souhaitez télécharger l'image "bitnami/mysql":

# docker pull bitnami/mysql

Création d'une image

Ce processus nécessite un fichier Dockerfile. Considérez-le comme un manuel d'instructions pour Docker. En bref, c'est un fichier de configuration qui regroupe les instructions à suivre pour assembler une image.

Comment ça marche?

Docker lit les instructions du Dockerfile et crée automatiquement les images. Une image Docker est un système de fichiers en couches. Chaque couche représente les instructions du Dockerfile. Voici les étapes pour créer une image à l'aide d'un Dockerfile:

Créez un fichier Dockerfile, contenant la configuration de votre application.

# sudo vim Dockerfile

Note: Le nom du fichier doit être Dockerfile avec un "D" majuscule.

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install –y mysql
CMD echo "My first image created."

Décortiquons quelques-uns des mots-clés importants utilisés dans un Dockerfile:

  • Le symbole # permet d'ajouter un commentaire dans un Dockerfile.
  • Le mot-clé FROM définit l'image de base à utiliser.
  • Le mot-clé MAINTAINER indique la personne responsable de l'image.
  • Le mot-clé RUN permet d'exécuter des commandes pendant la création de l'image. Dans cet exemple, il met à jour le système et installe MySQL.
  • Le mot-clé CMD permet d'exécuter une commande au lancement du conteneur.
  • Le mot-clé COPY permet de copier des fichiers du système hôte vers le conteneur docker.
  • Le mot-clé EXPOSE spécifie le numéro de port que le conteneur utilisera.

Exécutez la commande suivante pour créer votre image Docker:

Syntaxe:

docker build -t <votre_nom_utilisateur>/nom-repo .

# docker build -t asadali08537/first-repo .

Dans cette commande, le nom de l'image est spécifié et "." indique le répertoire de travail actuel. Docker va donc chercher le Dockerfile dans le répertoire courant. "-t" sert à étiqueter l'image. Le résultat devrait être similaire à:

Testons maintenant l'image en exécutant la commande "run" de docker:

docker run asadali08527/first-repo

L'exécution de cette commande permettra à votre image Docker d'installer MySQL avec les mises à jour nécessaires et d'afficher un message d'écho.

Envoi d'une image

Une fois que l'image est créée et fonctionne correctement, vous pouvez l'envoyer vers Docker Hub via la commande "push":

docker push asadali08527/first-repo

Vous pouvez vérifier les étiquettes d'image et leur statut sur Docker Hub. L'affichage sera similaire à ceci:

Qu'est-ce que les images certifiées Docker ?

Ce sont les images officielles publiées par des fournisseurs ou des contributeurs vérifiés. Une image ne peut être certifiée par Docker Hub que si son contenu respecte les règles, normes et lois de Docker Hub. En résumé, ces images doivent passer une série de tests de base.

Docker Hub fournit l'outil inspectDockerImage, qui permet aux fournisseurs de certifier leurs images et plugins (souvent utilisés pour la journalisation, les volumes et les réseaux).

Important:

Pour publier une image en tant qu'image certifiée Docker, vous devez d'abord la certifier et la tester vous-même à l'aide de l'outil inspectDockerImage. Une fois validée, Docker Hub la certifiera après soumission. Si une image contient des éléments non certifiés, elle ne pourra pas être publiée en tant que certifiée.

Images populaires sur Docker Hub

De nombreuses images sélectionnées et optimisées sont disponibles sur Docker Hub.

Leur popularité est basée sur des facteurs tels que le nombre de téléchargements, la présence sur le marché, les évaluations et les scores de satisfaction. Vous trouverez une liste détaillée des dépôts les plus populaires sur le site web de Docker Hub. L'utilisation d'une image dépend du système d'exploitation et de son architecture. Prenez en compte les éléments clés suivants lors de la sélection d'une image:

  • Recherchez la version spécifique en utilisant les étiquettes (souvent "latest").
  • Choisissez l'image avec le plus de téléchargements et d'étoiles.
  • Vérifiez la date de dernière mise à jour.
  • Vérifiez son type: s'il s'agit d'une image d'éditeur vérifié ou certifiée Docker.

Webhooks

Un webhook est un rappel web basé sur les événements. Il permet à une application de fournir des informations en temps réel à une autre application. La majorité des applications actuelles utilisent les webhooks, et Docker Hub en intègre cette fonctionnalité.

Il s'agit d'une API push HTTP déclenchée par des événements définis par l'utilisateur. Un webhook dans Docker peut être utilisé pour notifier une application ou un service utilisant les images en question. Généralement, les webhooks sont configurés avec Docker comme un pipeline d'événements, de sorte que chaque téléchargement de nouvelle image déclenche les tests d'applications. Une fois les tests validés, un autre événement se déclenche, notamment le déploiement du conteneur. Et une fois le déploiement réalisé, d'autres événements enregistrent les modifications apportées.

Conclusion

Vous avez maintenant une bonne compréhension de Docker Hub et de la manière de rechercher, créer et envoyer des images. N'oubliez pas que les images publiques sont accessibles à tous.

Si vous ne l'avez pas déjà fait, consultez ce guide d'installation de Docker.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.