Trabajar con el ECR servicio de Amazon en AWS Cloud9 - AWS Cloud9

AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajar con el ECR servicio de Amazon en AWS Cloud9

Puede acceder al servicio Amazon Elastic Container Registry (AmazonECR) directamente desde el AWS explorador en AWS Cloud9 IDE. Puedes usar Amazon ECR para enviar una imagen de programa a un ECR repositorio de Amazon. Para comenzar, siga estos pasos:

  1. Cree un Dockerfile que contenga la información necesaria para crear una imagen.

  2. Cree una imagen a partir de ese Dockerfile y etiquétala para procesarla.

  3. Crea un repositorio que esté dentro de tu ECR instancia de Amazon.

  4. Inserte la imagen etiquetada en el repositorio.

Requisitos previos

Antes de poder utilizar la ECR función Amazon del AWS kit de herramientas AWS Cloud9, asegúrate de cumplir primero con estos requisitos previos. Estos requisitos previos vienen preinstalados en los EC2 entornos de AWS Cloud9 IDE AWS Cloud9 Amazon y son necesarios para acceder a Amazon. ECR

1. Creación de un Dockerfile

Docker usa un archivo llamado Dockerfile para definir una imagen que se puede insertar y almacenar en un repositorio remoto. Antes de poder subir una imagen a un ECR repositorio, cree un Dockerfile y, a continuación, cree una imagen a partir de ese Dockerfile.

Creación de un Dockerfile
  1. Para navegar hasta el directorio en el que quieres almacenar tu Dockerfile, selecciona la opción Toggle Tree en la barra de navegación izquierda de tu. AWS Cloud9 IDE

  2. Cree un nuevo archivo llamado Dockerfile.

    nota

    AWS Cloud9 IDEpuede que le pida que seleccione un tipo de archivo o una extensión de archivo. Si esto ocurre, seleccione texto sin formato. AWS Cloud9 IDEtiene la extensión «dockerfile». Sin embargo, no recomendamos usarla. Esto se debe a que la extensión puede provocar conflictos con determinadas versiones de Docker u otras aplicaciones asociadas.

Editando tu Dockerfile usando AWS Cloud9 IDE

Si el Dockerfile tiene una extensión de archivo, abra el menú contextual (haga clic con el botón derecho) del archivo y elimine la extensión de archivo. Un Dockerfile con extensiones podría provocar conflictos con determinadas versiones de Docker u otras aplicaciones asociadas.

Después de eliminar la extensión de archivo del Dockerfile:

  1. Abre el Dockerfile vacío directamente en. AWS Cloud9 IDE

  2. Copie el contenido del siguiente ejemplo en su Dockerfile.

    ejemplo Plantilla de imagen de Dockerfile
    FROM ubuntu:22.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh

    Se trata de un archivo Dockerfile que utiliza una imagen de Ubuntu 22.04. Las RUNinstrucciones actualizan las cachés de los paquetes. Instale algunos paquetes de software para el servidor web y, a continuación, escriba el contenido "Hello World!" en la raíz de documentos del servidor web. La EXPOSEinstrucción expone el puerto 80 del contenedor e inicia el CMDservidor web.

  3. Guarde el archivo Dockerfile.

2. Creación de la imagen a partir del Dockerfile

El Dockerfile que creó contiene la información necesaria para crear una imagen para un programa. Antes de poder enviar esa imagen a tu ECR instancia de Amazon, primero crea la imagen.

Creación de una imagen a partir del Dockerfile
  1. Para navegar hasta el directorio que contiene tu Dockerfile, usa el Docker CLI o uno CLI que esté integrado con tu instancia de Docker.

  2. Para crear la imagen que está definida en su Dockerfile, ejecute el comando Docker build desde el mismo directorio que el Dockerfile.

    docker build -t hello-world .
  3. Ejecute el comando docker images para comprobar que la imagen se creó correctamente.

    docker images --filter reference=hello-world

    El resultado es el siguiente.

    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  4. Para ejecutar la imagen recién creada basada en Ubuntu 22.04, use el comando echo.

    nota

    Este paso no es necesario para crear o insertar su imagen. Sin embargo, puede ver cómo funciona la imagen del programa cuando se ejecuta.

    FROM ubuntu:22.04 CMD ["echo", "Hello from Docker in Cloud9"]

    A continuación, ejecute y cree el dockerfile. Debe ejecutar este comando en el mismo directorio que el dockerfile.

    docker build -t hello-world . docker run --rm hello-world

    El resultado es el siguiente.

    Hello from Docker in Cloud9

    Para obtener más información sobre el comando Docker run, consulte Docker run reference (Referencia de Docker run) en el sitio web de Docker.

3. Creación de un nuevo repositorio

Para subir la imagen a tu ECR instancia de Amazon, crea un repositorio nuevo en el que puedas guardarla.

Crear un nuevo ECR repositorio de Amazon
  1. En la barra de AWS Cloud9 IDE navegación, selecciona el icono del AWS kit de herramientas.

  2. Expanda el menú del Explorador de AWS .

  3. Busque el valor predeterminado Región de AWS que está asociado a su. Cuenta de AWS A continuación, selecciónelo para ver una lista de los servicios que se ofrecen a través del AWS Cloud9 IDE.

  4. Abra el menú contextual (haga clic con el botón derecho) de la ECRopción para iniciar el proceso de creación de un nuevo repositorio. A continuación, seleccione Create Repository (Crear repositorio).

  5. Para completar el proceso, siga las indicaciones.

  6. Una vez finalizado el proceso, podrá acceder a su nuevo repositorio desde la ECRsección del menú del AWS Explorador.

4. Inserción, extracción y eliminación de imágenes

Después de crear una imagen a partir de tu Dockerfile y crear un repositorio, puedes insertar la imagen en tu repositorio de AmazonECR. Además, si utiliza el AWS Explorador con Docker y el AWS CLI, puede hacer lo siguiente:

  • Extraer una imagen del repositorio.

  • Eliminar una imagen que esté almacenada en su repositorio.

  • Eliminar su repositorio.

Autenticación de Docker con su registro predeterminado

Se requiere autenticación para intercambiar datos entre las instancias de Amazon ECR y Docker. Para autenticar Docker con su registro:

  1. Abre una terminal dentro de tu. AWS Cloud9 IDE

  2. Utilice el get-login-passwordmétodo para autenticarse en su ECR registro privado e introduzca su región e Cuenta de AWS ID.

    aws ecr get-login-password \ --region <region> \ | docker login \ --username AWS \ --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
    importante

    En el comando anterior, reemplace region y AWS_account_id con información que sea específica de su Cuenta de AWS. Un valor region válido es us-east-1.

Etiquetado e inserción de una imagen en el repositorio

Después de autenticar Docker con tu instancia de AWS, envía una imagen a tu repositorio.

  1. Use el comando de imágenes de Docker para ver las imágenes que ha almacenado localmente e identifique la que desea etiquetar.

    docker images

    El resultado es el siguiente.

    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  2. Etiquete su imagen Docker con el comando Docker tag.

    docker tag hello-world:latest AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
  3. Inserte la imagen etiquetada en su repositorio con el comando Docker push.

    importante

    Asegúrate de que el nombre de tu repositorio local sea el mismo que el de tu EC2 repositorio de AWS Amazon. En este ejemplo, ambos repositorios se deben llamar hello-world. Para obtener más información sobre cómo insertar imágenes con docker, consulte Inserción de una imagen de Docker.

    docker push AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest

    El resultado es el siguiente.

    The push refers to a repository [AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774

Una vez que la imagen etiquetada se haya cargado correctamente en el repositorio, actualice el AWS kit de herramientas seleccionando Actualizar el explorador en la pestaña AWS Explorador. A continuación, estará visible en el menú del AWS Explorador de AWS Cloud9 IDE.

Extraer una imagen de Amazon ECR
  • Puede extraer una imagen en su instancia local del comando Docker tag.

    docker pull AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest

    El resultado es el siguiente.

    azonaws.com/hello-world:latest latest: Pulling from hello-world Digest: sha256:e02c521fd65eae4ef1acb746883df48de85d55fc85a4172a09a124b11b339f5e Status: Image is up to date for 922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world.latest
Eliminar una imagen de tu ECR repositorio de Amazon

Existen dos métodos para eliminar una imagen de AWS Cloud9 IDE. El primer método consiste en utilizar el AWS Explorador.

  1. Desde el AWS Explorador, expande el ECRmenú.

  2. Expanda el repositorio del que desea eliminar una imagen.

  3. Abra el menú contextual (haga clic con el botón derecho) de la etiqueta de imagen que está asociada a la imagen que desea eliminar.

  4. Para eliminar todas las imágenes almacenadas que están asociadas a esa etiqueta, elija Delete Tag... (Eliminar etiqueta...).

Eliminar una imagen mediante el AWS CLI
  • También puede eliminar una imagen de su repositorio con el batch-delete-image comando AWS ecr.

    aws ecr batch-delete-image \ --repository-name hello-world \ --image-ids imageTag=latest

    El resultado es el siguiente.

    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Eliminar un repositorio de tu ECR instancia de Amazon

Existen dos métodos para eliminar un repositorio de AWS Cloud9 IDE. El primer método consiste en utilizar el AWS Explorador:

  1. Desde el AWS Explorador, expande el ECRmenú.

  2. Abra el menú contextual (haga clic con el botón derecho) del repositorio que desea eliminar.

  3. Elija Delete Repository... (Eliminar repositorio...).

Eliminar un ECR repositorio de Amazon del AWS CLI
  • Puede eliminar un repositorio con el comando AWS ecr delete-repository.

    nota

    Normalmente no puede eliminar un repositorio sin eliminar primero las imágenes que contiene. Sin embargo, si agrega la marca --force, puede eliminar un repositorio y todas sus imágenes en un solo paso.

    aws ecr delete-repository \ --repository-name hello-world \ --force

    El resultado es el siguiente.

    --repository-name hello-world --force { "repository": { "repositoryUri": "922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world", "registryId": "922327013870", "imageTagMutability": "MUTABLE", "repositoryArn": "arn:aws:ecr:us-west-2:922327013870:repository/hello-world", "repositoryName": "hello-world", "createdAt": 1664469874.0 } }