Comment utiliser la commande docker image push pour téléverser des images

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à téléverser vos images Docker sur un registre en utilisant la commande docker image push. Ce processus est essentiel pour partager vos images personnalisées avec d'autres personnes ou les déployer dans différents environnements.

Vous commencerez par valider les modifications apportées à l'intérieur d'un conteneur en cours d'exécution pour créer une nouvelle image. Ensuite, vous apprendrez à étiqueter correctement cette image pour un registre spécifique, ce qui est une étape cruciale avant le téléversement. Enfin, vous pratiquerez le téléversement de l'image étiquetée sur le registre, y compris la méthode pour téléverser toutes les étiquettes associées à une image.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/push("Push Image to Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/run -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} docker/ps -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} docker/pull -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} docker/tag -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} docker/push -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} docker/images -.-> lab-555160{{"Comment utiliser la commande docker image push pour téléverser des images"}} end

Valider un conteneur en une nouvelle image

Dans cette étape, vous apprendrez à valider les modifications apportées à l'intérieur d'un conteneur en cours d'exécution en une nouvelle image Docker. Cela est utile lorsque vous souhaitez enregistrer l'état d'un conteneur après avoir effectué des modifications, telles que l'installation de logiciels ou la configuration de fichiers.

Tout d'abord, exécutons un simple conteneur Ubuntu. Nous utiliserons l'image ubuntu. Étant donné que nous allons apporter des modifications à l'intérieur du conteneur, nous devons l'exécuter de manière interactive avec un pseudo-TTY.

docker run -it ubuntu

Vous devriez maintenant être dans le shell du conteneur Ubuntu. Effectuons une simple modification, comme l'installation du paquet curl.

apt-get update
apt-get install -y curl

Une fois l'installation terminée, quittez le shell du conteneur en tapant exit.

exit

Maintenant que vous avez quitté le conteneur, les modifications que vous avez apportées (installation de curl) sont toujours présentes dans cette instance de conteneur spécifique. Pour enregistrer ces modifications sous forme d'une nouvelle image, vous devez valider le conteneur.

Tout d'abord, trouvez l'ID du conteneur que vous venez de quitter. Vous pouvez utiliser la commande docker ps -a pour lister tous les conteneurs, y compris ceux qui se sont arrêtés.

docker ps -a

Recherchez le conteneur créé à partir de l'image ubuntu et notez son CONTAINER ID.

Maintenant, utilisez la commande docker commit pour créer une nouvelle image à partir de ce conteneur. La syntaxe de base est docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]. Nous allons valider le conteneur et donner un nom et une étiquette à la nouvelle image. Remplacez <CONTAINER_ID> par l'ID réel que vous avez trouvé.

docker commit < CONTAINER_ID > my-ubuntu-with-curl:v1

Cette commande crée une nouvelle image nommée my-ubuntu-with-curl avec l'étiquette v1. Vous pouvez vérifier que la nouvelle image a été créée en listant vos images locales.

docker images

Vous devriez voir my-ubuntu-with-curl dans la liste des images. Cette nouvelle image inclut maintenant le paquet curl que vous avez installé dans le conteneur.

Étiqueter l'image pour un registre spécifique

Dans cette étape, vous apprendrez à étiqueter une image Docker afin de la téléverser sur un registre de conteneurs spécifique. Lorsque vous téléversez une image sur un registre, l'étiquette est utilisée pour identifier l'image au sein de ce registre. Le format standard pour étiqueter une image pour un registre est [nom-hôte-du-registre[:port]]/référentiel[:étiquette].

Dans l'étape précédente, vous avez créé une image nommée my-ubuntu-with-curl avec l'étiquette v1. Maintenant, étiquetons cette image pour un registre hypothétique. À des fins de démonstration, nous utiliserons localhost:5000 comme adresse de notre registre.

Vous pouvez utiliser la commande docker tag pour créer une nouvelle étiquette pour une image existante. La syntaxe de base est docker tag IMAGE_SOURCE[:TAG] IMAGE_TARGET[:TAG].

Étiquetons l'image my-ubuntu-with-curl:v1 pour notre registre hypothétique.

docker tag my-ubuntu-with-curl:v1 localhost:5000/my-ubuntu-with-curl:v1

Cette commande crée une nouvelle étiquette localhost:5000/my-ubuntu-with-curl:v1 qui pointe vers la même image que my-ubuntu-with-curl:v1.

Vous pouvez vérifier que la nouvelle étiquette a été ajoutée en listant à nouveau vos images locales.

docker images

Vous devriez maintenant voir une entrée pour localhost:5000/my-ubuntu-with-curl avec l'étiquette v1. Cela indique que l'image est maintenant étiquetée et prête à être téléversée sur le registre à l'adresse localhost:5000.

Téléverser l'image étiquetée sur le registre

Dans cette étape, vous apprendrez à téléverser une image Docker étiquetée sur un registre de conteneurs. Téléverser une image la rend disponible pour que d'autres puissent la télécharger et l'utiliser.

Avant de pouvoir téléverser une image sur un registre local, vous devez avoir un registre en cours d'exécution. Pour ce laboratoire, nous allons exécuter un conteneur de registre local temporaire.

Tout d'abord, téléchargez l'image registry.

docker pull registry:2

Maintenant, exécutez le conteneur de registre. Nous allons mapper le port 5000 de l'hôte sur le port 5000 du conteneur.

docker run -d -p 5000:5000 --name local-registry registry:2

Cette commande démarre un conteneur détaché nommé local-registry exécutant le registre Docker.

Dans l'étape précédente, vous avez étiqueté l'image my-ubuntu-with-curl:v1 avec localhost:5000/my-ubuntu-with-curl:v1. Cette étiquette inclut l'adresse de notre registre local (localhost:5000).

Maintenant, vous pouvez téléverser cette image étiquetée sur le registre local en utilisant la commande docker push. La syntaxe est docker push NOM[:ÉTIQUETTE].

docker push localhost:5000/my-ubuntu-with-curl:v1

Vous devriez voir une sortie indiquant la progression de l'opération de téléversement, y compris les couches en cours de téléversement.

Une fois le téléversement terminé, l'image my-ubuntu-with-curl:v1 est maintenant stockée dans votre registre local à l'adresse localhost:5000.

Téléverser toutes les étiquettes d'une image

Dans cette étape, vous apprendrez à téléverser toutes les étiquettes associées à une image spécifique sur un registre de conteneurs. Parfois, vous pouvez avoir plusieurs étiquettes pointant vers la même image (par exemple, latest, v1.0, stable). Vous pouvez téléverser toutes ces étiquettes avec une seule commande.

Dans les étapes précédentes, vous avez créé une image my-ubuntu-with-curl et l'avez étiquetée comme v1 et localhost:5000/my-ubuntu-with-curl:v1. Ajoutons une autre étiquette à cette image. Nous allons l'étiqueter comme latest pour notre registre local.

Utilisez à nouveau la commande docker tag pour ajouter l'étiquette latest.

docker tag my-ubuntu-with-curl:v1 localhost:5000/my-ubuntu-with-curl:latest

Maintenant, liste vos images pour voir la nouvelle étiquette.

docker images

Vous devriez maintenant voir localhost:5000/my-ubuntu-with-curl avec les étiquettes v1 et latest, toutes deux pointant vers le même identifiant d'image.

Pour téléverser toutes les étiquettes de cette image sur le registre local, vous pouvez utiliser la commande docker push avec le nom du référentiel sans spécifier d'étiquette.

docker push localhost:5000/my-ubuntu-with-curl

Docker identifiera toutes les étiquettes associées au référentiel localhost:5000/my-ubuntu-with-curl et téléversera chacune d'elles sur le registre. Vous verrez une sortie indiquant la progression du téléversement pour les étiquettes v1 et latest.

Une fois le téléversement terminé, les deux versions de votre image (v1 et latest) sont disponibles dans votre registre local.

Résumé

Dans ce laboratoire, vous avez appris à enregistrer les modifications effectuées à l'intérieur d'un conteneur Docker en cours d'exécution dans une nouvelle image. Ce processus consiste à exécuter un conteneur, à apporter des modifications à l'intérieur (telles que l'installation de logiciels), à quitter le conteneur, à identifier l'ID du conteneur, puis à utiliser la commande docker commit pour créer une nouvelle image en fonction de l'état du conteneur. Vous avez également appris à attribuer un nom et une étiquette à la nouvelle image créée et à vérifier son existence en utilisant docker images.