Partager l'application
Maintenant que vous avez construit une image, vous pouvez la partager. Pour partager des images Docker, vous devez utiliser un registre Docker. Le registre par défaut est Docker Hub et c'est de là que proviennent toutes les images que vous avez utilisées.
ID Docker
Un ID Docker vous permet d'accéder à Docker Hub, qui est la plus grande bibliothèque et communauté mondiale d'images de conteneurs. Créez un ID Docker gratuitement si vous n'en avez pas.
Créer un dépôt
Pour pousser une image, vous devez d'abord créer un dépôt sur Docker Hub.
-
Inscrivez-vous ou Connectez-vous à Docker Hub.
-
Sélectionnez le bouton Créer un dépôt.
-
Pour le nom du dépôt, utilisez
getting-started
. Assurez-vous que la Visibilité est Publique. -
Sélectionnez Créer.
Dans l'image suivante, vous pouvez voir un exemple de commande Docker depuis Docker Hub. Cette commande poussera vers ce dépôt.


Pousser l'image
Essayons de pousser l'image vers Docker Hub.
-
Dans la ligne de commande, exécutez la commande suivante :
docker push docker/getting-started
Vous verrez une erreur comme celle-ci :
$ docker push docker/getting-started The push refers to repository [docker.io/docker/getting-started] An image does not exist locally with the tag: docker/getting-started
Cet échec est attendu car l'image n'est pas encore étiquetée correctement. Docker cherche un nom d'image
docker/getting started
, mais votre image locale est encore nomméegetting-started
.Vous pouvez confirmer cela en exécutant :
docker image ls
-
Pour corriger cela, connectez-vous d'abord à Docker Hub en utilisant votre ID Docker :
docker login YOUR-USER-NAME
. -
Utilisez la commande
docker tag
pour donner à l'imagegetting-started
un nouveau nom. RemplacezYOUR-USER-NAME
par votre ID Docker.$ docker tag getting-started YOUR-USER-NAME/getting-started
-
Maintenant exécutez à nouveau la commande
docker push
. Si vous copiez la valeur depuis Docker Hub, vous pouvez omettre la partietagname
, car vous n'avez pas ajouté de tag au nom de l'image. Si vous ne spécifiez pas de tag, Docker utilise un tag appelélatest
.$ docker push YOUR-USER-NAME/getting-started
Exécuter l'image sur une nouvelle instance
Maintenant que votre image a été construite et poussée dans un registre, essayez d'exécuter votre application sur une toute nouvelle instance qui n'a jamais vu cette image de conteneur. Pour ce faire, vous utiliserez Play with Docker.
NotePlay with Docker utilise la plateforme amd64. Si vous utilisez un Mac basé sur ARM avec du silicium Apple, vous devrez reconstruire l'image pour être compatible avec Play with Docker et pousser la nouvelle image vers votre dépôt.
Pour construire une image pour la plateforme amd64, utilisez le flag
--platform
.$ docker build --platform linux/amd64 -t YOUR-USER-NAME/getting-started .
Docker buildx supporte aussi la construction d'images multi-plateformes. Pour en savoir plus, voir Images multi-plateformes.
-
Ouvrez votre navigateur sur Play with Docker.
-
Sélectionnez Login puis sélectionnez docker dans la liste déroulante.
-
Connectez-vous avec votre compte Docker Hub puis sélectionnez Start.
-
Sélectionnez l'option ADD NEW INSTANCE dans la barre latérale gauche. Si vous ne la voyez pas, élargissez un peu votre navigateur. Après quelques secondes, une fenêtre de terminal s'ouvre dans votre navigateur.
-
Dans le terminal, démarrez votre application fraîchement poussée.
$ docker run -dp 0.0.0.0:3000:3000 YOUR-USER-NAME/getting-started
Vous devriez voir l'image être téléchargée et finalement démarrer.
TipVous avez peut-être remarqué que cette commande lie le mappage de port à une adresse IP différente. Les commandes
docker run
précédentes publiaient les ports vers127.0.0.1:3000
sur l'hôte. Cette fois, vous utilisez0.0.0.0
.Se lier à
127.0.0.1
expose seulement les ports d'un conteneur à l'interface de bouclage. Se lier à0.0.0.0
, cependant, expose le port du conteneur sur toutes les interfaces de l'hôte, le rendant disponible au monde extérieur.Pour plus d'informations sur le fonctionnement du mappage de ports, voir Réseau.
-
Sélectionnez le badge 3000 quand il apparaît.
Si le badge 3000 n'apparaît pas, vous pouvez sélectionner Open Port et spécifier
3000
.
Résumé
Dans cette section, vous avez appris comment partager vos images en les poussant vers un registre. Vous êtes ensuite allé sur une toute nouvelle instance et avez pu exécuter l'image fraîchement poussée. C'est assez courant dans les pipelines CI, où le pipeline créera l'image et la poussera vers un registre, puis l'environnement de production peut utiliser la dernière version de l'image.
Informations connexes :
Étapes suivantes
Dans la section suivante, vous apprendrez comment persister les données dans votre application conteneurisée.