Docker Hub
Notions théoriques
Docker Hub est une plateforme en ligne qui permet de stocker, partager et découvrir des images Docker.
- Une image Docker est un modèle contenant tout ce qui est nécessaire pour exécuter une application : le code, les dépendances, les configurations, etc.
- Les images servent de base pour créer des conteneurs.
-
Rôle de Docker Hub :
- Docker Hub est un registre public où les développeurs peuvent :
- Télécharger des images existantes.
- Publier leurs propres images pour les partager avec d'autres.
- Trouver des images officielles maintenues par Docker
ou des organisations reconnues (comme
debian
,ubuntu
,apache
,nginx
,mariadb
, etc.).
- Docker Hub est un registre public où les développeurs peuvent :
-
Fonctionnalités principales de Docker Hub :
- Recherche d'images :
Vous pouvez rechercher des images pour des technologies spécifiques (ex. :
php
,python
,node
, etc.). - Téléchargement d'images : Les images peuvent être téléchargées sur votre machine locale avec la commande
docker pull
. - Publication d'images : Vous pouvez envoyer vos images sur Docker Hub avec la commande
docker push
. - Automatisation : Docker Hub peut automatiser la création d'images à partir de dépôts GitHub ou Bitbucket.
- Gestion privée/public : Les images peuvent être publiques (accessibles à tous) ou privées (accessibles uniquement à vous ou à votre organisation).
- Recherche d'images :
Vous pouvez rechercher des images pour des technologies spécifiques (ex. :
-
Comptes et authentification :
-
Pour utiliser Docker Hub, rendez vous sur le site https://hub.docker.com.
-
Pour envoyer une image Docker, il est nécessaire de se créer un compte sur le site https://hub.docker.com.
-
Une fois inscrit, vous pouvez vous connecter depuis votre terminal avec
docker login
.
-
-
Vous pouvez consulter les images hébergées :
-
Par exemple, pour rechercher l'image officielle du serveur Apache, il suffit de saisir :
httpd
.
-
-
Commandes essentielles :
- Télécharger une image :
Exemple :
docker pull IMAGE_NAME
docker pull nginx
- Envoyer une image sur Docker Hub :
docker push USERNAME/IMAGE_NAME
infoUSERNAME
est l'identifiant que vous utilisez pour vous connecter au Docker Hub sur le site https://hub.docker.com/.- Lister les images locales :
docker images
- Télécharger une image :
-
Images officielles et vérifiées :
- Les images officielles sont maintenues par Docker ou des organisations reconnues.
- Elles sont identifiées par un badge "Official Image" sur Docker Hub.
-
Bonnes pratiques :
- Toujours vérifier les images avant de les utiliser (description, tags, nombre de téléchargements).
- Utiliser des tags spécifiques (ex. :
python:3.11
) pour éviter les incompatibilités. - Supprimer régulièrement les images inutiles pour économiser de l'espace disque.
Exemple pratique
Télécharger et publier une image sur Docker Hub
Étape 1 : Télécharger une image existante
-
Ouvrez votre terminal.
-
Téléchargez l'image
nginx
depuis Docker Hub :docker pull nginx
-
Vérifiez que l'image est bien téléchargée :
docker images
Résultat attendu :
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest abc123456789 2 days ago 133MB
Étape 2 : Modifier l'image
-
Lancez un conteneur basé sur l'image
nginx
:docker run -p 8080:80 -d nginx
astuceNotez bien le CONTAINER_ID du conteneur.
Nous pourons ensuite entrer dans ce conteneur avec la commande :
docker exec -it CONTAINER_ID bash
.Vous pouvez vérifier le bon fonctionnement du serveur Web à l'aide de votre navigateur :
http://localhost:8080
. -
Entrez dans le conteneur en cours d'exécution avec la commande :
docker exec -it CONTAINER_ID bash
-
Une fois dans le conteneur, modifiez le contenu du fichier
index.html
(avec la commandeecho
) :echo "Hello, Docker Hub!" > /usr/share/nginx/html/index.html
-
Quittez le conteneur :
exit
Étape 3 : Sauvegarder et publier l'image
-
Créez une nouvelle image à partir du conteneur :
docker commit CONTAINER_ID USERNAME/nginx-perso
infoUSERNAME
est l'identifiant que vous utilisez pour vous connecter au Docker Hub sur le site https://hub.docker.com/. -
Connectez-vous à Docker Hub :
docker login
-
Publiez votre image sur Docker Hub :
docker push USERNAME/nginx-perso
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif : Créer une image Docker personnalisée et la publier sur Docker Hub.
Étapes :
-
Téléchargez l'image officielle
nginx
depuis Docker Hub. -
Lancez un conteneur basé sur cette image sur le port
8080
: -
Entrez dans le conteneur en cours d'exécution avec la commande
docker exec ...
. -
Une fois dans le conteneur, modifiez le contenu du fichier
index.html
(avec la commandeecho ...
) afin que le site Web affiche :"Bienvenue sur le serveur Web de VotrePrénom VOTRENOM !".
-
Quittez le conteneur :
exit
-
Sauvegardez le conteneur sous forme d'une image Docker nommée
USERNAME/nginx-perso
.attentionUSERNAME
est l'identifiant que vous utilisez pour vous connecter au Docker Hub sur le site https://hub.docker.com/. -
Publiez cette image sur Docker Hub sous le nom
USERNAME/nginx-perso
. -
Pour tester, lancez un conteneur basé sur votre image
USERNAME/nginx-perso
. -
Vérifiez dans votre navigateur
http://localhost:8080
. -
Créez une nouvelle image à partir du conteneur :
docker commit CONTAINER_ID USERNAME/nginx-perso
-
Connectez-vous à Docker Hub :
docker login
-
Publiez votre image sur Docker Hub.
-
Vérifiez que l'image
USERNAME/nginx-perso
est bien arrivée dans le Docker Hub https://hub.docker.com/repositories/. -
Créez un autre conteneur à partir de votre image :
docker run -p 8081:80 -d USERNAME/nginx-perso
-
Vérifiez dans votre navigateur
http://localhost:8081
.
Une solution
Vous devez être connecté pour voir le contenu.