Technique Docker

Utilisez des images grâce au partage sur le Docker Hub

420-5A4-MT · Module 3 · Techniques Docker
Technique Docker

Partager son image

Vous avez maintenant créé votre propre image via un Dockerfile, et vous souhaitez partager cette image avec vos collègues. Pour cela, il existe deux solutions :

La première solution, bien qu'étant totalement fonctionnelle, force vos collègues à recréer eux-mêmes chacune des images, et cela peut prendre beaucoup de temps.

Pour améliorer cela, vous pouvez utiliser une registry Docker qui vous permet de partager directement votre image.

Technique Docker

Créez votre image sur le Docker Hub

Vous allez créer votre image Docker sur le Docker Hub, pour la rendre accessible de façon publique à l'ensemble de la communauté.

Pour cela, vous devez vous rendre sur le site hub.docker.com et vous connecter avec le compte que vous avez créé lors de l'installation de Docker.

Puis, cliquez sur le lien Create Repository. Vous arrivez alors sur une page où vous devez saisir le nom de votre image, ainsi qu'une description.

Pour le reste du cours, nous allons appeler cette image ocr-course-docker. Vous pouvez aussi appeler votre repository de la même façon sur le Docker Hub.

Technique Docker

Envoyez votre image sur le Docker Hub

Dans le chapitre précédent, vous avez créé une image Docker via la commande docker build. Nous allons maintenant la publier sur le Docker Hub. Pour cela, nous devons utiliser plusieurs commandes.

Voici la première commande que vous allez utiliser : docker tag ocr-docker-build:latest YOUR_USERNAME/ocr-docker-build:latest. Celle-ci va créer un lien entre notre image ocr-docker-build:latest créée précédemment et l'image que nous voulons envoyer sur le Docker Hub YOUR_USERNAME/ocr-docker-build:latest.

docker tag ocr-docker-build:latest ocr/ocr-docker-build:latest

Si le conteneur que vous utilisez n'a pas de nom, utilisez son id de conteneur, que vous pouvez récupérer en retour de la commande docker build.

docker tag id_du_conteneur openclassrooms/ocr-docker-build:latest

Vous pouvez maintenant exécuter la dernière commande nécessaire pour envoyer votre image vers le Docker Hub. Pour cela, vous allez exécuter la commande docker push YOUR_USERNAME/ocr-docker-build:latest.

docker push ocr/ocr-docker-build:latest
The push refers to repository [docker.io/ocr/ocr-docker-build]
00f821099106: Pushed
e9223d0e868c: Pushed
3d99cd871f5d: Pushed
fbb641a8b943: Mounted from library/debian
latest: digest: sha256:a24595e38d46841b4b571cde8bd65d49638bec2dbfc08b8bfa5fc47995a0972e size: 1165

Si vous retournez maintenant sur la page Docker Hub de votre image, vous pourrez voir qu'il existe une première version de celle-ci.

Vous pouvez créer d'autres versions de votre image en remplaçant le :latest par une autre chaîne de caractères. Cependant, il faut bien faire attention, car l'image utilisée par défaut sera toujours l'image :latest.

Technique Docker

Trouvez l'image qui vous correspond

Vous pouvez avoir besoin de rechercher des images dans le Docker Hub, mais il existe deux types d'images différents :

Docker Inc propose à ce jour 152 images officielles qu'ils maintiennent à jour continuellement, et vous les retrouverez directement sur le Docker Hub. Il y a aussi de très nombreuses images personnelles créées par différents membres de la communauté, et même par certains éditeurs de solutions open source.

Si vous recherchez une image, vous avez deux façons de procéder :

Pour la solution du barbu, vous devez utiliser la commande docker search ; par exemple, si on recherche une image Nginx :

docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 11115 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1569 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 695 [OK]
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as p… 494 [OK]
webdevops/php-nginx Nginx with PHP-FPM 123 [OK]
kitematic/hello-world-nginx A light-weight nginx container that demonstr… 123
zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server wi… 92 [OK]
bitnami/nginx Bitnami nginx Docker Image 64 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 56
tobi312/rpi-nginx NGINX on Raspberry Pi / armhf 24 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 17
nginxdemos/hello NGINX webserver that serves a simple page co… 13 [OK]

Comme vous pouvez le voir, le CLI docker vous retourne une liste d'images Docker disponibles.

Vous pouvez aussi faire la même action via le Docker Hub : nous retrouverons là aussi une liste d'images avec les filtres nécessaires pour classer les images comme nous le souhaitons.

À retenir

En résumé

Vous savez maintenant envoyer votre image sur le Docker Hub, et vous êtes aussi capable de rechercher des images sur celui-ci.

Retenez ces commandes importantes :