Découvrons Docker Hub.

Aujourd’hui, dans ce tutoriel, nous allons découvrir Docker Hub, y compris comment l’utiliser, comment créer notre propre image, et comment il aide à publier et à tirer des images vers et depuis Docker Hub. Nous passerons également un peu de temps à explorer certains des dépôts populaires sur Docker Hub.

Conditions préalables

Vous devez avoir une compréhension de base de Docker et être familier avec les environnements Windows et Linux. Ce tutoriel utilisera l’outil Docker Desktop pour pratiquer l’exercice en cours, c’est-à-dire pour construire et pousser une image vers Docker Hub. Les utilisateurs de Windows et de Mac peuvent le télécharger et l’installer à partir d’ici, et les utilisateurs de Linux peuvent suivre ce lien.

Qu’est-ce que Docker Hub ?

Docker Hub est un service de registre de dépôt fourni par Docker Inc.

Il nous permet de tirer et de pousser des images Docker depuis et vers Docker Hub. Nous pouvons le considérer comme un GitHub, où nous récupérons et poussons notre code source, mais dans le cas de Docker Hub, nous téléchargeons ou publions nos images de conteneurs. Il s’agit d’un dépôt en ligne basé sur le cloud qui stocke les deux types de dépôts, c’est-à-dire le dépôt public et le dépôt privé. Les référentiels publics sont accessibles à tous, mais les référentiels privés ne sont accessibles qu’à leur propriétaire. Un coût est également associé au stockage d’un certain nombre de référentiels en tant que référentiel privé.

Fonctionnalités de Docker Hub

Docker Hub offre les fonctionnalités suivantes.

#1. Dépôts d’images

Il nous aide à trouver et à extraire des images de conteneurs à partir de Docker Hub.

Il nous aide également à pousser des images en tant que dépôt public ou privé vers Docker Hub.

#2. Team and Organizations (Équipes et organisations)

Il nous permet de créer des groupes de travail et de pousser les dépôts comme un dépôt privé, qui est disponible pour une utilisation au sein de notre organisation seulement. De cette façon, nous avons un accès géré à nos dépôts privés d’images de conteneurs.

#3. Intégration GitHub et Bitbucket

Il permet l’intégration avec des référentiels de code source tels que GitHub et BitBucket.

#4. Constructions automatisées

Si un changement dans le code source a été poussé vers les dépôts de code source, il détecte et construit automatiquement des images de conteneurs à partir de GitHub ou BitBucket et les pousse vers Docker Hub.

#5. Crochets Web

Une fois que nous avons poussé nos images avec succès, avec l’aide d’un webhook, il déclenche une action pour intégrer Docker Hub avec d’autres services.

#6. Images officielles et images de l’éditeur

Les images de haute qualité fournies par Docker sont considérées comme des images officielles, et elles peuvent être extraites et utilisées. De même, les images de haute qualité fournies par des fournisseurs externes sont des images d’éditeur, également appelées images certifiées, qui offrent un support et une garantie de compatibilité avec Docker Enterprise. Nous discuterons des images certifiées plus loin dans cet article.

Création du premier dépôt

Cette étape nécessite de se connecter à Docker Hub en utilisant vos identifiants de connexion. Si vous n’avez pas de compte, vous pouvez déjà en créer un en cliquant sur le bouton Sign-Up disponible sur la page web. Une fois connecté, vous pouvez créer le dépôt en cliquant sur Create Repository sur la page d’accueil.

  • Une fois que vous avez cliqué sur Créer un dépôt, un nom vous sera demandé, donnez un nom à votre dépôt.
My First Repository
  • Sélectionnez une option de visibilité (public ou privé).

Nous pouvons également intégrer nos dépôts de code source comme GitHub et BitBucket par le biais de la configuration de la construction, mais c’est facultatif et peut être fait à un stade ultérieur.

  • Une fois que tout est terminé, cliquez sur Créer.

Félicitations ! Vous avez créé vos premiers dépôts, qui ressembleront à ce qui suit.

Creating first repository

Docker Hub ne nous donne qu’un seul dépôt privé gratuitement. Cependant, si nous avons besoin de plus de dépôts privés, nous pouvons mettre à niveau notre compte vers un plan payant.

Ouvrez maintenant l’outil/terminal Docker Desktop, téléchargé et installé ci-dessus, et connectez-vous à Docker Hub, en utilisant une commande.

docker login

Explorer les images

Il y a deux façons de rechercher des dépôts publics et des images à partir de Docker Hub, c’est-à-dire que nous pouvons soit les rechercher à partir du site Web de Docker Hub, soit utiliser l’outil de ligne de commande et exécuter la commande ci-dessous. Considérons que nous voulons rechercher l’image du dépôt MySQL.

docker search mysql
Docker search command

Téléchargement d’une image

Nous pouvons télécharger une image à partir de la commande Docker Hub en utilisant la commande pull comme suit

# docker pull mysql

Si nous avons déjà une image mysql sur notre machine, alors la commande ci-dessus mettra automatiquement à jour l’image vers la dernière version. Une chose à garder à l’esprit ici est que si nous remarquons la sortie de la commande docker search, il y a beaucoup d’images de MySQL sur Docker Hub, et c’est parce que n’importe qui peut pousser une image. Mais cela dépend de nous, quelle image utiliser en fonction de notre cas d’utilisation, et nous devons choisir celle qui convient.

Disons que nous voulons tirer une image bitnami/mysql.

# docker pull bitnami/mysql

Création d’une image

Ce processus nécessite un Dockerfile. Nous pouvons considérer un Dockerfile comme un manuel d’instructions qui indique à Docker ce qu’il doit assembler. En bref, c’est un fichier de configuration qui continue à assembler les instructions, ce que nous lui demandons d’assembler.

Comment cela fonctionne-t-il ?

Docker lit les instructions d’un Dockerfile et construit automatiquement des images. L’image Docker est un système de fichiers en couches, composé de plusieurs couches en lecture seule, et chaque couche d’une image Docker représente les instructions d’un Dockerfile. Suivez les étapes ci-dessous pour créer une image à l’aide de Dockerfile.

Créez un fichier Docker, qui spécifie la configuration de notre application.

# sudo vim Dockerfile

Note – Le nom du fichier doit être Dockerfile avec un“D” majuscule.

DE ubuntu:16.04
MAINTAINER someuser@somedomain.com
Exécutez apt-get update
Exécutez apt-get install -y mysql
CMD echo "Ma première image créée"

Jetons un coup d’œil à certains des mots-clés importants utilisés dans Dockerfile

  • Nous pouvons utiliser les symboles # pour ajouter un commentaire dans un Dockerfile
  • Le mot-clé“FROM” définit l’image de base à utiliser.
  • Le mot-clé“MAINTAINER” désigne la personne qui va maintenir cette image.
  • Le mot clé“RUN” est utilisé pour exécuter l’instruction donnée pour l’image. Dans notre cas, il faut d’abord mettre à jour le système, puis installer MySQL.
  • Le mot-clé “CMD” est utilisé pour exécuter une commande une fois que le conteneur a été lancé.
  • Le mot-clé “COPY” permet de copier un fichier de notre OS hôte vers le conteneur docker.
  • Le mot-clé “EXPOSE” est utilisé pour spécifier le numéro de port sur lequel le conteneur exécutera son processus.

Exécutez la commande ci-dessous pour construire notre image Docker

Syntaxe :

docker build -t /nom_du_répo- .

# docker build -t asadali08537/first-repo .

Dans la commande ci-dessus, le nom de l’image est et “.” spécifie le répertoire de travail actuel. Il s’agit d’une indication pour Docker de rechercher le répertoire actuel du fichier docker.“-t” est utilisé pour marquer l’image. Nous pouvons voir une sortie similaire à :

Building a docker image

Maintenant, testons notre image en l’exécutant à l’aide de la commande run de Docker.

docker run asadali08527/first-repo

L’exécution de la commande ci-dessus demandera à votre image Docker d’installer MySQL avec succès sur votre machine avec toutes les mises à jour nécessaires, et enfin, elle affichera un message d’écho.

Pousser une image

Une fois que notre image a été créée avec succès et qu’elle fonctionne, nous pouvons la pousser vers Docker Hub à l’aide de la commande push.

docker push asadali08527/first-repo
pushin a docker image

Nous pouvons vérifier les tags et le statut de l’image sur Docker Hub, qui ressemblera à ceci.

Docker Hub screenshot after pushing an image

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

Ce sont les images officielles poussées par les vendeurs ou les contributeurs. Une image ne peut être certifiée par Docker Hub que si son contenu est conforme aux règles, normes et lois fournies par Docker Hub. En bref, cette image doit passer certains tests de base.

Docker Hub fournit l’outil <strong>inspectDockerImage</strong>, grâce auquel un fournisseur peut certifier lui-même les images et les plugins (généralement, le fournisseur ou le contributeur publie ses plugins pour la journalisation des volumes et des réseaux).

Remarque –

Afin de publier notre image comme certifiée par Docker, nous devons d’abord certifier et tester nos images et plugins par nous-mêmes grâce à l’outil inspectDockerImage, une fois que nous avons certifié et testé avec succès, lors de la soumission, Docker Hub la certifiera. Si notre contenu nécessite un environnement non certifié, il ne peut en aucun cas être publié comme certifié.

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

La popularité de ces images dépend de divers facteurs tels que les tirages, la présence sur le marché, les évaluations, les notes de satisfaction, etc. Pour obtenir une liste détaillée des dépôts les plus populaires, rendez-vous sur le site web de Docker Hub. L’utilisation d’une image dépend également du système d’exploitation et de son architecture. Si nous savons que les images tirées seront utilisées pour quel système d’exploitation et son architecture, nous devons prendre en compte les facteurs clés suivants avant de tirer une image.

  • Recherchez une version spécifique à l’aide de balises (le plus souvent la plus récente).
  • Optez pour celle qui a le plus grand nombre de téléchargements et d’étoiles.
  • Vérifiez ses mises à jour (date de la dernière mise à jour).
  • Si possible, vérifiez son type, qu’il s’agisse d’un éditeur vérifié ou d’un éditeur officiel (certifié par Docker).

Crochets Web

Un webhook est un callback web qui fonctionne avec des événements, et c’est un moyen pour une application de fournir des informations en temps réel à une autre application. De nos jours, presque toutes les applications proposent une fonction de webhook, et Docker Hub dispose également de cette fonctionnalité.

Il s’agit d’une API HTTP push déclenchée par des événements désignés par l’utilisateur. Nous pouvons utiliser un webhook dans Docker pour notifier une application ou un service qui utilise les images concernées. Généralement, nous configurons les webhooks avec docker comme un pipeline d’événements, de sorte que tout téléchargement de nouvelles images déclenche des applications de test pour exécuter les cas de test soulignés.

Une fois que le résultat du test est satisfaisant, il déclenche un autre événement, qui est le déploiement du conteneur, et une fois que le déploiement a été effectué avec succès, il déclenche d’autres événements pour enregistrer les changements effectués jusqu’à présent.

Conclusion

Je pense que vous avez maintenant une bonne compréhension de Docker Hub et de la façon dont vous pouvez rechercher, créer et pousser des images. Gardez à l’esprit que lorsque vous publiez des images publiques, elles seront visibles par tout le monde.

Si ce n’est pas déjà fait, consultez ce guide d’installation de Docker.