15/11/2024

Linux

Comment publier une image Dockerfile sur le référentiel Docker Hub ?

I. Présentation

Aujourd'hui, nous allons voir comment publier une image Docker, par l'intermédiaire du repository officiel Docker Hub. Vous vous demandez surement dans quel but réaliser cette démarche ? Et bien, cela permettra à une tierce personne de récupérer facilement le container de votre projet, sans passer par la phase de "build", c'est-à-dire de construction de votre image. En effet, celle-ci sera utilisable par tout le monde, ou un cercle restreint de personne dans le cadre d'une publication de l'image en mode privé (non démontré dans cet article).

Pour ce tutoriel, je m'inspire d'un article déjà en ligne au sujet de Docker : comment conteneuriser une application web avec Docker ?

Sans plus attendre découvrons comment publier une image sur Docker Hub !

II. Premiers pas avec Docker Hub

Dans un premier temps, inscrivez-vous directement sur le site, c'est gratuit et ça se passe par ici : Docker Hub - Inscription

Ensuite, sur la page d'accueil, nous allons cliquer sur "Repository", puis "Create repository".

 

Un repository Docker Hub va accueillir une seule et unique image docker, que nous allons construire par l'intermédiaire d'un fichier Dockerfile. Nommez votre repository, et choisissez l'option "Public" avant de cliquer sur "Create". Pour ma part, le dépôt se nommera "mywebapp".

Une fois que cela est fait, vous allez obtenir la page suivante.

III. Publier une image sur Docker Hub

Nous laissons de côté notre navigateur pour maintenant utiliser le terminal d'un hôte équipé de Docker. Connectez-vous sur votre hôte docker et exécutez les commandes suivantes :

docker login
<entrez votre identifiant docker>
<entrez votre mot de passe docker>

Listez vos images :

docker images

Dans mon cas, je souhaite publier l'image "mywebapp" que j'ai créée par l'intermédiaire d'un Dockerfile (vu dans l'article précédent). Par la suite, j'assigne un label à mon image par l'intermédiaire de la commande docker tag, puis grâce à la commande docker push, je vais charger cette image sur mon repository Docker Hub "archidote/mywebapp". Ce qui donne les deux commandes suivantes :

docker tag mywebapp archidote/mywebapp
docker push archidote/mywebapp

Une fois l'upload terminé, on peut de nouveau lister les images Docker et l'on verra la présence de l'image "archidote/mywebapp", sur Docker Hub.

docker images

L'image a correctement été envoyée sur notre repository Docker Hub !

IV. Tester l'image hébergée sur Docker Hub

Afin de vérifier si l'image est réellement fonctionnelle, supprimez l'image "archidote/mywebapp" de votre banque d'images Docker ainsi que de votre banque de conteneurs à l'aide des commandes suivantes :

docker rmi <ids>

docker rm <ids>

Puis, une fois que cela est fait, je lance l'instanciation de mon container depuis l'image que j'ai envoyée précédemment sur Docker Hub.

docker run -d -p 8080:80 archidote/mywebapp
docker ps # Permet de vérifier si le conteneur est en cours d'exécution.

Pour vérifier le bon fonctionnement du conteneur, il ne me reste plus qu'à accéder à sa page Web via l'adresse suivante :

http://<adresse-ip>:8080

Voilà, nous venons de charger l'image d'un container Docker sur Docker Hub et ensuite nous avons vu comment déployer cette image Docker à partir du dépôt Docker Hub ! J'espère que ce tutoriel vous sera utile !

author avatar
Geoffrey Sauvageot-Berland Ingénieur Cybersécurité
Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.