

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Copiar una imagen de contenedor de un repositorio en otro repositorio
<a name="copy-image-to-repository"></a>

En este tema se describe cómo extraer una imagen del contenedor de un repositorio al que los nodos no tienen acceso y enviar la imagen a un repositorio al que tienen acceso los nodos. Puede enviar la imagen a Amazon ECR o a un repositorio alternativo al que tengan acceso sus nodos.
+ El motor de Docker instalado y configurado en su computadora. Para ver instrucciones, consulte [Install Docker Engine](https://docs.docker.com/engine/install/) (Instalar motor de Docker) en la documentación de Docker.
+ La versión `2.12.3` o posterior, o bien, la versión `1.27.160` o posterior de la AWS interfaz de la línea de comandos (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Los administradores de paquetes, como `yum`, `apt-get` o Homebrew para macOS, suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) y [Configuración rápida con aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) en la *Guía del usuario de la interfaz de la línea de comandos de AWS*. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte [Instalación de la CLI de AWS en su directorio de usuarios principal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) en la *Guía del usuario de AWS CloudShell*.
+ Un punto de conexión de VPC de interfaz para Amazon ECR, si desea que los nodos extraigan imágenes de contenedores o envíen imágenes de contenedores a un repositorio privado de Amazon ECR a través de la red de Amazon. Para obtener más información, consulte [Crear los puntos de conexión de VPC para Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-vpc-create) en la Guía del usuario de Amazon Elastic Container Registry.

Siga los siguientes pasos para extraer una imagen de contenedor de un repositorio y enviarla a su propio repositorio. En los siguientes ejemplos que se proporcionan en este tema, se extrae la imagen del [complemento CNI de Amazon VPC para el auxiliar de métricas de Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/cmd/cni-metrics-helper/README.md). Cuando siga estos pasos, asegúrese de reemplazar los valores de ejemplo por sus propios valores.

1. Si todavía no tiene un repositorio de Amazon ECR u otro repositorio, cree uno al que tengan acceso sus nodos. El siguiente comando crea un repositorio privado de Amazon ECR. El nombre de un repositorio privado de Amazon ECR debe comenzar por una letra. Solo puede contener letras minúsculas, números, guiones (-), guiones bajos (\$1) y barras inclinadas (/). Para obtener más información, consulte [Creación de un repositorio privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) en la Guía del usuario de Amazon Elastic Container Registry.

   Puede reemplazar *cni-metrics-helper* por lo que elija. Como práctica recomendada, cree un repositorio independiente para cada imagen. Recomendamos esto porque las etiquetas de imagen deben ser únicas dentro de un repositorio. Reemplace *region-code* por una [Región de AWS compatible con Amazon ECR](https://docs.aws.amazon.com/general/latest/gr/ecr.html).

   ```
   aws ecr create-repository --region region-code --repository-name cni-metrics-helper
   ```

1. Determine el registro, el repositorio y la etiqueta (opcional) de la imagen que deben extraer los nodos. Esta información se encuentra en el formato `registry/repository[:tag]`.

   Muchos de los temas de Amazon EKS sobre la instalación de imágenes requieren aplicar un archivo de manifiesto o instalar la imagen mediante un gráfico de Helm. Sin embargo, antes de aplicar un archivo de manifiesto o instalar un gráfico de Helm, consulte primero el contenido del manifiesto o el archivo `values.yaml` del gráfico. Así podrá determinar el registro, el repositorio y la etiqueta que desea extraer.

   Por ejemplo, puede encontrar la siguiente línea en el [archivo de manifiesto](https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.12.6/config/master/cni-metrics-helper.yaml) para el [complemento CNI de Amazon VPC para el auxiliar de métricas de Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/cmd/cni-metrics-helper/README.md). El registro es `602401143452.dkr.ecr.us-west-2.amazonaws.com`, que es un registro privado de Amazon ECR. El repositorio es `cni-metrics-helper`.

   ```
   image: "602401143452.dkr.ecr.us-west-2.amazonaws.com/cni-metrics-helper:v1.12.6"
   ```

   Podría ver las siguientes variaciones para la ubicación de una imagen:
   + Solo `repository-name:tag`. En este caso, `docker.io` suele ser el registro, pero no se especifica ya que Kubernetes lo antepone a un nombre de repositorio de forma predeterminada si no se especifica ningún registro.
   +  `repository-name/repository-namespace/repository:tag`. Es opcional definir un espacio de nombres para el repositorio, pero a veces lo especifica el propietario del repositorio para clasificar las imágenes. Por ejemplo, todas las [imágenes de Amazon EC2 de la galería pública de Amazon ECR](https://gallery.ecr.aws/aws-ec2/) usan el espacio de nombres `aws-ec2`.

     Antes de instalar una imagen con Helm, consulte el archivo `values.yaml` de Helm para determinar la ubicación de la imagen. Por ejemplo, el archivo [values.yaml](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/charts/cni-metrics-helper/values.yaml#L5-L9) para el [complemento CNI de Amazon VPC para el auxiliar de métricas de Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/cmd/cni-metrics-helper/README.md) incluye las siguientes líneas.

     ```
     image:
       region: us-west-2
       tag: v1.12.6
       account: "602401143452"
       domain: "amazonaws.com"
     ```

1. Extraiga la imagen del contenedor especificada en el archivo de manifiesto.

   1. Si la extracción es de un registro público, como la [Galería pública de Amazon ECR](https://gallery.ecr.aws/), puede pasar al siguiente subpaso porque no es necesaria la autenticación. En este ejemplo, se autentica en un registro privado de Amazon ECR que contiene el repositorio de la imagen auxiliar de métricas de CNI. Amazon EKS mantiene la imagen en cada registro que aparece en [Visualización de los registros de imágenes de contenedores de Amazon para los complementos de Amazon EKS](add-ons-images.md). Puede autenticarse en cualquiera de los registros reemplazando *602401143452* y *region-code* por la información de otro registro. Existe un registro independiente para cada [Región de AWS compatible con Amazon EKS](https://docs.aws.amazon.com/general/latest/gr/eks.html#eks_region).

      ```
      aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 602401143452.dkr.ecr.region-code.amazonaws.com
      ```

   1. Extraiga la imagen. En este ejemplo, extrae del registro en el que se autenticó en el subpaso anterior. Reemplace *602401143452* y *region-code* por la información proporcionada en el subpaso anterior.

      ```
      docker pull 602401143452.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
      ```

1. Etiquete la imagen extraída con su registro, repositorio y etiqueta. En el siguiente ejemplo se supone que ha extraído la imagen del archivo de manifiesto y la va a enviar al repositorio privado de Amazon ECR que creó en el primer paso. Reemplace *111122223333* por el ID de su cuenta. Reemplace *region-code* por la región de AWS que creó en su repositorio privado de Amazon ECR.

   ```
   docker tag cni-metrics-helper:v1.12.6 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
   ```

1. Realice la autenticación del registro. En este ejemplo, se autenticará en el registro privado de Amazon ECR que creó en el primer paso. Para obtener más información, consulte [Autenticación de registros](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) en la Guía del usuario de Amazon Elastic Container Registry.

   ```
   aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 111122223333.dkr.ecr.region-code.amazonaws.com
   ```

1. Inserte la imagen en el repositorio. En este ejemplo, envía la imagen en el repositorio privado de Amazon ECR que creó en el primer paso. Para obtener más información, consulte [Inserción de una imagen de Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) en la Guía del usuario de Amazon Elastic Container Registry.

   ```
   docker push 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6
   ```

1. Actualice el archivo de manifiesto que utilizó para determinar la imagen en un paso anterior con el `registry/repository:tag` para la imagen que envió. Si hace la instalación con un gráfico de Helm, a menudo hay una opción para especificar el `registry/repository:tag`. Al instalar el gráfico, especifique el `registry/repository:tag` para la imagen que envió a su repositorio.