Cómo usar el comando docker image push para subir imágenes

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo cargar sus imágenes de Docker a un registro utilizando el comando docker image push. Este proceso es esencial para compartir sus imágenes personalizadas con otros o desplegarlas en diferentes entornos.

Comenzará confirmando los cambios realizados dentro de un contenedor en ejecución para crear una nueva imagen. Luego, aprenderá cómo etiquetar adecuadamente esta imagen para un registro específico, lo cual es un paso crucial antes de realizar la carga. Finalmente, practicará la carga de la imagen etiquetada al registro, incluyendo cómo cargar todas las etiquetas asociadas a una imagen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container 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{{"Cómo usar el comando docker image push para subir imágenes"}} docker/ps -.-> lab-555160{{"Cómo usar el comando docker image push para subir imágenes"}} docker/pull -.-> lab-555160{{"Cómo usar el comando docker image push para subir imágenes"}} docker/tag -.-> lab-555160{{"Cómo usar el comando docker image push para subir imágenes"}} docker/push -.-> lab-555160{{"Cómo usar el comando docker image push para subir imágenes"}} docker/images -.-> lab-555160{{"Cómo usar el comando docker image push para subir imágenes"}} end

Confirmar un contenedor en una nueva imagen

En este paso, aprenderá cómo confirmar los cambios realizados dentro de un contenedor en ejecución en una nueva imagen de Docker. Esto es útil cuando desea guardar el estado de un contenedor después de realizar modificaciones, como instalar software o configurar archivos.

Primero, ejecutemos un simple contenedor de Ubuntu. Utilizaremos la imagen ubuntu. Dado que realizaremos cambios dentro del contenedor, necesitamos ejecutarlo de forma interactiva con una pseudo-TTY.

docker run -it ubuntu

Ahora debería estar dentro del shell del contenedor de Ubuntu. Hagamos un cambio simple, como instalar el paquete curl.

apt-get update
apt-get install -y curl

Después de que se complete la instalación, salga del shell del contenedor escribiendo exit.

exit

Ahora que ha salido del contenedor, los cambios que realizó (instalar curl) todavía están presentes en esa instancia específica del contenedor. Para guardar estos cambios como una nueva imagen, debe confirmar el contenedor.

Primero, encuentre el ID del contenedor que acaba de salir. Puede usar el comando docker ps -a para listar todos los contenedores, incluyendo aquellos que se han detenido.

docker ps -a

Busque el contenedor que se creó a partir de la imagen ubuntu y anote su CONTAINER ID.

Ahora, use el comando docker commit para crear una nueva imagen a partir de este contenedor. La sintaxis básica es docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]. Confirmaremos el contenedor y le daremos un nombre y una etiqueta a la nueva imagen. Reemplace <CONTAINER_ID> con el ID real que encontró.

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

Este comando crea una nueva imagen llamada my-ubuntu-with-curl con la etiqueta v1. Puede verificar que se ha creado la nueva imagen listando sus imágenes locales.

docker images

Debería ver my-ubuntu-with-curl en la lista de imágenes. Esta nueva imagen ahora incluye el paquete curl que instaló en el contenedor.

Etiquetar la imagen para un registro específico

En este paso, aprenderá cómo etiquetar una imagen de Docker para que se pueda cargar a un registro de contenedores específico. Cuando se carga una imagen a un registro, la etiqueta se utiliza para identificar la imagen dentro de ese registro. El formato estándar para etiquetar una imagen para un registro es [registry-hostname[:port]]/repository[:tag].

En el paso anterior, creó una imagen llamada my-ubuntu-with-curl con la etiqueta v1. Ahora, etiquetemos esta imagen para un registro hipotético. Con fines demostrativos, usaremos localhost:5000 como dirección de nuestro registro.

Puede usar el comando docker tag para crear una nueva etiqueta para una imagen existente. La sintaxis básica es docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG].

Etiquetemos la imagen my-ubuntu-with-curl:v1 para nuestro registro hipotético.

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

Este comando crea una nueva etiqueta localhost:5000/my-ubuntu-with-curl:v1 que apunta a la misma imagen que my-ubuntu-with-curl:v1.

Puede verificar que se ha agregado la nueva etiqueta listando nuevamente sus imágenes locales.

docker images

Ahora debería ver una entrada para localhost:5000/my-ubuntu-with-curl con la etiqueta v1. Esto indica que la imagen ahora está etiquetada y lista para ser cargada al registro en localhost:5000.

Cargar la imagen etiquetada al registro

En este paso, aprenderá cómo cargar una imagen de Docker etiquetada a un registro de contenedores. Cargar una imagen la hace disponible para que otros la descarguen y la utilicen.

Antes de poder cargar una imagen a un registro local, debe tener un registro en ejecución. Para este laboratorio, ejecutaremos un contenedor de registro local temporal.

Primero, descargue la imagen registry.

docker pull registry:2

Ahora, ejecute el contenedor de registro. Mapearemos el puerto 5000 del host al puerto 5000 del contenedor.

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

Este comando inicia un contenedor en modo desatendido llamado local-registry que ejecuta el registro de Docker.

En el paso anterior, etiquetó la imagen my-ubuntu-with-curl:v1 con localhost:5000/my-ubuntu-with-curl:v1. Esta etiqueta incluye la dirección de nuestro registro local (localhost:5000).

Ahora, puede cargar esta imagen etiquetada al registro local utilizando el comando docker push. La sintaxis es docker push NAME[:TAG].

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

Debería ver una salida que indique el progreso de la operación de carga, incluyendo las capas que se están cargando.

Después de que se complete la carga, la imagen my-ubuntu-with-curl:v1 ahora se almacena en su registro local en localhost:5000.

Cargar todas las etiquetas de una imagen

En este paso, aprenderá cómo cargar todas las etiquetas asociadas a una imagen específica a un registro de contenedores. A veces, puede tener múltiples etiquetas que apunten a la misma imagen (por ejemplo, latest, v1.0, stable). Puede cargar todas estas etiquetas con un solo comando.

En los pasos anteriores, creó una imagen my-ubuntu-with-curl y la etiquetó como v1 y localhost:5000/my-ubuntu-with-curl:v1. Agreguemos otra etiqueta a esta imagen. La etiquetaremos como latest para nuestro registro local.

Use nuevamente el comando docker tag para agregar la etiqueta latest.

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

Ahora, liste sus imágenes para ver la nueva etiqueta.

docker images

Ahora debería ver localhost:5000/my-ubuntu-with-curl con las etiquetas v1 y latest, ambas apuntando al mismo ID de imagen.

Para cargar todas las etiquetas de esta imagen al registro local, puede usar el comando docker push con el nombre del repositorio sin especificar una etiqueta.

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

Docker identificará todas las etiquetas asociadas al repositorio localhost:5000/my-ubuntu-with-curl y cargará cada una al registro. Verá una salida que indique el progreso de la carga tanto para la etiqueta v1 como para la etiqueta latest.

Después de que se complete la carga, ambas versiones de su imagen (v1 y latest) estarán disponibles en su registro local.

Resumen

En este laboratorio, aprendiste cómo confirmar los cambios realizados dentro de un contenedor de Docker en ejecución a una nueva imagen. Este proceso implica ejecutar un contenedor, realizar modificaciones dentro de él (como instalar software), salir del contenedor, identificar el ID del contenedor y luego usar el comando docker commit para crear una nueva imagen basada en el estado del contenedor. También aprendiste cómo asignar un nombre y una etiqueta a la imagen recién creada y verificar su existencia utilizando docker images.