

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.

# Cree y pruebe imágenes de Docker para los servicios de contenedores de Lightsail
<a name="amazon-lightsail-creating-container-images"></a>

Con Docker, puede crear, ejecutar, probar e implementar aplicaciones distribuidas basadas en contenedores. Los servicios de contenedor de Amazon LightSail utilizan imágenes de contenedor Docker en implementaciones para lanzar contenedores.

En esta guía, le mostramos cómo crear una imagen de contenedor en la máquina local utilizando Dockerfile. Una vez creada la imagen, puede insertarla en el servicio de contenedor de Lightsail para implementarla.

Para completar los procedimientos de esta guía, debe tener un conocimiento básico de Docker y cómo funciona. Para obtener más información sobre Docker, consulte [¿Qué es Docker?](https://aws.amazon.com/docker/) y la [descripción de Docker](https://docs.docker.com/get-started/overview/).

**Contenido**
+ [Paso 1: completar los requisitos previos](#create-container-image-prerequisite)
+ [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile)
+ [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container)
+ [(Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local](#create-container-image-cleanup)
+ [Pasos siguientes a la creación de imágenes de contenedor](#create-container-image-next-steps)

## Paso 1: completar los requisitos previos
<a name="create-container-image-prerequisite"></a>

Antes de comenzar, debe instalar el software necesario para crear contenedores y luego insertarlos en el servicio de contenedor de Lightsail. Por ejemplo, debe instalar y utilizar Docker para crear y compilar las imágenes de contenedor que luego puede utilizar con su servicio de contenedor de Lightsail. Para obtener más información, consulte [Instalación de software para administrar imágenes de contenedor de Amazon Lightsail](amazon-lightsail-install-software.md).

## Paso 2: crear un Dockerfile y compilar una imagen de contenedor
<a name="create-container-image-create-dockerfile"></a>

Complete el siguiente procedimiento para crear un Dockerfile y compilar una imagen de contenedor de Docker `mystaticwebsite` a partir de él. La imagen del contenedor será para un sitio web estático simple alojado en un servidor web Apache en Ubuntu.

1. Cree una carpeta `mystaticwebsite` en su máquina local donde almacenará su Dockerfile.

1. Cree un Dockerfile en la carpeta que acaba de crear.

   Dockerfile no utiliza una extensión de archivo, como `.TXT`. El nombre de archivo es `Dockerfile`.

1. Copie uno de los siguientes bloques de código en función de cómo desee configurar la imagen de contenedor y péguela en el Dockerfile:
   + **Si desea crear una imagen simple de contenedor de sitio web estático con un mensaje de Hola mundo**, copie el siguiente bloque de código y péguelo en el Dockerfile. En este ejemplo de código se utiliza la imagen Ubuntu 18.04. Las instrucciones `RUN` actualizan las cachés de los paquetes, instalan y configuran Apache, e imprimen un mensaje de Hola mundo en la raíz de documentos del servidor web. El folleto `EXPOSE` expone el puerto 80 en el contenedor y las instrucciones `CMD` inician el servidor web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Write hello world message
     RUN echo 'Hello World!' > /var/www/html/index.html
     
     # Open port 80
     EXPOSE 80
     
     # Start Apache service
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```
   + **Si desea usar su propio conjunto de archivos HTML para la imagen de contenedor de sitio web estático**, cree una carpeta `html` en la misma carpeta donde almacena el Dockerfile. A continuación, coloque sus archivos HTML en esa carpeta.

     Cuando los archivos HTML estén en la carpeta `html`, copie el siguiente bloque de código y péguelo en el Dockerfile. En este ejemplo de código se utiliza la imagen Ubuntu 18.04. Las instrucciones `RUN` actualizan las cachés de paquete e instala y configura Apache. La instrucción `COPY` copia el contenido de la carpeta html en la raíz de documentos del servidor web. El folleto `EXPOSE` expone el puerto 80 en el contenedor y las instrucciones `CMD` inician el servidor web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Copy html directory files
     COPY html /var/www/html/
     
     # Open port 80
     EXPOSE 80
     
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```

1. Abra una ventana de símbolo del sistema o terminal y cambie el directorio a la carpeta en la que está almacenando el Dockerfile.

1. Ingrese el siguiente comando para compilar la imagen de contenedor utilizando Dockerfile en la carpeta. Este comando crea una nueva imagen de contenedor Docker llamada `mystaticwebsite`.

   ```
   docker build -t mystaticwebsite .
   ```

   Debería ver un mensaje que confirma que la imagen se ha compilado correctamente.

1. Ingrese el siguiente comando para ver las imágenes de contenedor en la máquina local.

   ```
   docker images --filter reference=mystaticwebsite
   ```

   Debería ver un resultado similar al del siguiente ejemplo, que muestra la nueva imagen de contenedor creada.  
![\[Resultado del comando de imágenes de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-images-command-result.png)

   La imagen de contenedor recién compilada está lista para probarse usándola para ejecutar un nuevo contenedor en la máquina local. Continúe en la siguiente sección, [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container), de esta guía.

## Paso 3: ejecutar la nueva imagen de contenedor
<a name="create-container-image-run-container"></a>

Siga los pasos que se indican a continuación para ejecutar la nueva imagen de contenedor que creó.

1. En una ventana de símbolo del sistema o terminal, ingrese el siguiente comando para ejecutar la imagen de contenedor que compiló en la sección anterior [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile) de esta guía. La opción `-p 8080:80` asigna el puerto 80 expuesto en el contenedor al puerto 8080 de la máquina local. La opción `-d` especifica que el contenedor debe ejecutarse en modo desconectado.

   ```
   docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
   ```

1. Ingrese el siguiente comando para ver los contenedores en ejecución.

   ```
   docker container ls -a
   ```

   Debería ver un resultado similar al del siguiente ejemplo, que muestra e nuevo contenedor en ejecución.  
![\[Resultado del comando de contenedor de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Para confirmar que el contenedor está en funcionamiento, abra una nueva ventana del navegador y vaya a `http://localhost:8080`. Debería ver un mensaje similar al del siguiente ejemplo. Esto confirma que el contenedor está en funcionamiento en la máquina local.  
![\[Sitio web estático que se ejecuta en un contenedor Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

   La imagen de contenedor recién compilada está lista para insertarse en la cuenta de Lightsail para que pueda implementarla en el servicio de contenedor de Lightsail. Para obtener más información, consulte [Inserción y administración de imágenes de contenedor en los servicios de contenedor de Amazon Lightsail](amazon-lightsail-pushing-container-images.md).

## (Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local
<a name="create-container-image-cleanup"></a>

Ahora que ha creado una imagen de contenedor que puede insertar en el servicio de contenedor de Lightsail, es hora de limpiar los contenedores que se ejecutan en la máquina local como resultado de seguir los procedimientos de esta guía.

Complete los pasos siguientes para limpiar los contenedores que se ejecutan en la máquina local:

1. Ejecute el siguiente comando para ver los contenedores que se ejecutan en la máquina local.

   ```
   docker container ls -a
   ```

   Debería ver un resultado similar al que se muestra a continuación, que enumera los nombres de los contenedores que se ejecutan en la máquina local.  
![\[Resultado del comando de contenedor de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Ejecute el siguiente comando para quitar el contenedor en ejecución creado anteriormente en esta guía. Esto obliga al contenedor a detenerse y lo elimina permanentemente.

   ```
   docker container rm <ContainerName> --force
   ```

   En el comando, sustituya < ContainerName > por el nombre del contenedor que desee detener y elimínelo.

   Ejemplo:

   ```
   docker container rm mystaticwebsite --force
   ```

   Ahora se debe eliminar el contenedor que se creó como resultado de esta guía.

## Pasos siguientes a la creación de imágenes de contenedor
<a name="create-container-image-next-steps"></a>

Después de crear las imágenes de contenedor, insértelas en el servicio de contenedor de LightSail cuando esté listo para implementarlas. Para obtener más información, consulte [Administrar imágenes del servicio de contenedores de Lightsail](amazon-lightsail-pushing-container-images.md).

**Topics**
+ [Paso 1: completar los requisitos previos](#create-container-image-prerequisite)
+ [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile)
+ [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container)
+ [(Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local](#create-container-image-cleanup)
+ [Pasos siguientes a la creación de imágenes de contenedor](#create-container-image-next-steps)
+ [Administrar imágenes de contenedor](amazon-lightsail-pushing-container-images.md)
+ [Instalación del complemento de servicios de contenedor](amazon-lightsail-install-software.md)
+ [Acceso al repositorio privado de ECR](amazon-lightsail-container-service-ecr-private-repo-access.md)

# Inserte, visualice y elimine imágenes de contenedores para un servicio de contenedores de Lightsail
<a name="amazon-lightsail-pushing-container-images"></a>

Al crear una implementación en el servicio de contenedores de Amazon Lightsail, debe especificar una imagen de contenedor fuente para cada entrada de contenedor. Puede usar imágenes de un registro público, como Amazon ECR Public Gallery, o puede usar imágenes que cree en su máquina local. En esta guía, verá cómo insertar imágenes de contenedor desde su máquina local al servicio de contenedores de Lightsail. Para obtener más información sobre la creación de imágenes de contenedor, consulte [Creación de imágenes del servicio de contenedores](amazon-lightsail-creating-container-images.md).

**Contenido**
+ [Requisitos previos](#push-container-images-prerequisites)
+ [Inserción de imágenes de contenedor desde la máquina local en el servicio de contenedores](#push-container-images)
+ [Visualización de imágenes de contenedor almacenadas en el servicio de contenedores](#view-pushed-container-images)
+ [Eliminación de imágenes de contenedor almacenadas en el servicio de contenedores](#delete-stored-container-images)

## Requisitos previos
<a name="push-container-images-prerequisites"></a>

Complete los siguientes requisitos previos antes de comenzar con la inserción de imágenes de contenedor en el servicio de contenedores:
+ Cree el servicio de contenedores en la cuenta de Lightsail. Para obtener más información, consulte [Creación de servicios de contenedores de Amazon Lightsail](amazon-lightsail-creating-container-services.md).
+ En la máquina local, instale el software que necesita para crear sus propias imágenes de contenedor e insertarlas en el servicio de contenedores de Lightsail. Para obtener más información, consulte [Instalación de software para administrar imágenes de contenedor de Amazon Lightsail](amazon-lightsail-install-software.md).
+ En la máquina local, cree imágenes de contenedor que pueda insertar en el servicio de contenedores de Lightsail. Para obtener más información, consulte [Creación de imágenes de contenedor para sus servicios de contenedores de Amazon Lightsail](amazon-lightsail-creating-container-images.md).

## Inserción de imágenes de contenedor desde la máquina local en el servicio de contenedores
<a name="push-container-images"></a>

Complete el siguiente procedimiento para insertar las imágenes de contenedor en el servicio de contenedores.

1. Abra una ventana del símbolo del sistema o del terminal.

1. En la ventana del símbolo del sistema o del terminal, ingrese el siguiente comando para ver las imágenes de Docker que se encuentran actualmente en la máquina local.

   ```
   docker images
   ```

1. En el resultado, busque el nombre (nombre del repositorio) y la etiqueta de la imagen del contenedor que desea enviar al servicio de contenedores. Anote el valor, ya que lo necesitará en el siguiente paso.  
![\[Imágenes de contenedor de Docker en una máquina local\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/amazon-lightsail-container-service-docker-images.png)

1. Ingrese el siguiente comando para insertar las imágenes de contenedor de la máquina local en el servicio de contenedores.

   ```
   aws lightsail push-container-image --region <Region> --service-name <ContainerServiceName> --label <ContainerImageLabel> --image <LocalContainerImageName>:<ImageTag>
   ```

   En el comando, sustituya:
   + *<Region>*con la región de AWS en la que se creó el servicio de contenedores.
   + *<ContainerServiceName>*con el nombre de su servicio de contenedores.
   + *<ContainerImageLabel>*con la etiqueta que quieres darle a tu contenedor la imagen que quieres darle cuando esté almacenado en tu servicio de contenedores. Especifique una etiqueta descriptiva que puede utilizar para realizar el seguimiento de las diferentes versiones de las imágenes de contenedor registradas.

     La etiqueta formará parte del nombre de la imagen de contenedor generado por el servicio de contenedores. Por ejemplo, si el nombre del servicio de contenedores es `container-service-1`, la etiqueta de la imagen de contenedor es `mystaticsite`, y esta es la primera versión de la imagen de contenedor que está insertando, por lo que el nombre de la imagen generado por el servicio de contenedores será `:container-service-1.mystaticsite.1`.
   + *<LocalContainerImageName>*con el nombre de la imagen del contenedor que quieres enviar a tu servicio de contenedores. Obtuvo el nombre de la imagen de contenedor en el paso anterior de este procedimiento.
   + *<ImageTag>*con la etiqueta de la imagen del contenedor que quieres enviar a tu servicio de contenedores. Obtuvo la etiqueta de la imagen de contenedor en el paso anterior de este procedimiento.

   Ejemplo:

   ```
   aws lightsail push-container-image --region us-west-2 --service-name myservice --label mystaticwebsite --image mystaticwebsite:v2
   ```

   Debería ver un resultado similar al del siguiente ejemplo, que confirma que la imagen de contenedor se ha insertado en el servicio de contenedores.  
![\[Imagen de contenedor de Docker enviada a un servicio de contenedores de Lightsail\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/amazon-lightsail-container-service-pushed-image.png)

   Consulte la siguiente sección [Visualización de imágenes de contenedor almacenadas en el servicio de contenedores](#view-pushed-container-images) de esta guía para ver la imagen de contenedor insertada en el servicio de contenedores en la consola de Lightsail.

## Visualización de imágenes de contenedor almacenadas en el servicio de contenedores
<a name="view-pushed-container-images"></a>

Complete el siguiente procedimiento para ver las imágenes de contenedor que se han insertado y se están almacenando en el servicio de contenedores.

1. Inicie sesión en la consola de [Lightsail](https://lightsail.aws.amazon.com/).

1. En el panel de navegación izquierdo, elija **Contenedores**.

1. Elija el nombre del servicio de contenedores cuyas imágenes de contenedor almacenadas quiera ver.

1. En la página de administración del servicio de contenedores, elija la pestaña **Images (Imágenes)**.
**nota**  
La pestaña **Images (Imágenes)** no se muestra si no ha enviado imágenes al servicio de contenedores. Para mostrar la pestaña de imágenes para el servicio de contenedores, primero debe enviar imágenes de contenedor al servicio.

   En la página **Images (Imágenes)** se muestran las imágenes de contenedor que se han insertado en el servicio de contenedores y que se están almacenando actualmente en el servicio. Las imágenes de contenedor que se están utilizando en una implementación actual no se pueden eliminar y aparecen con un icono de eliminación atenuado.  
![\[La página de imágenes almacenadas de la consola Lightsail\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/amazon-lightsail-container-services-stored-images-page.png)

   Puede crear implementaciones mediante las imágenes de contenedor almacenadas en el servicio. Para obtener más información, consulte Creación y administración de implementaciones de los servicios de contenedores de Amazon Lightsail.

## Eliminación de imágenes de contenedor almacenadas en el servicio de contenedores
<a name="delete-stored-container-images"></a>

Complete el siguiente procedimiento para eliminar las imágenes de contenedor que se han insertado y se están almacenando en el servicio de contenedores.

1. Inicie sesión en la consola de [Lightsail](https://lightsail.aws.amazon.com/).

1. En el panel de navegación izquierdo, elija **Contenedores**.

1. Elija el nombre del servicio de contenedores cuya implementación actual quiera ver.

1. En la página de administración del servicio de contenedores, elija la pestaña **Images (Imágenes)**.
**nota**  
La pestaña **Images (Imágenes)** no se muestra si no ha enviado imágenes al servicio de contenedores. Para mostrar la pestaña de imágenes para el servicio de contenedores, primero debe enviar imágenes de contenedor al servicio.

1. Busque la imagen del contenedor que desee eliminar y elija el icono de eliminación (papelera).
**nota**  
Las imágenes de contenedor que se están utilizando en una implementación actual no se pueden eliminar. Los iconos de eliminación aparecen atenuados.

1. En el panel de confirmación que aparece, elija **Yes, delete (Sí, eliminar)** para confirmar que desea eliminar la imagen almacenada de forma permanente.

   La imagen de contenedor almacenada se elimina de inmediato del servicio de contenedores.

# Instale Docker y el AWS CLI complemento Lightsail Control para contenedores
<a name="amazon-lightsail-install-software"></a>

Puede utilizar la consola de Amazon Lightsail para crear sus servicios de contenedores de Lightsail y crear despliegues con imágenes de contenedores de un registro público en línea, como Amazon ECR Public Gallery. Para crear sus propias imágenes de contenedor e insertarlas en su servicio de contenedores, debe instalar el siguiente software adicional en la misma computadora en la que planea crear las imágenes de contenedor:
+ **Docker**: ejecute, pruebe y cree sus propias imágenes de contenedores que luego podrá utilizar con el servicio de contenedores de Lightsail.
+ **AWS Command Line Interface (AWS CLI)**: especifique los parámetros de las imágenes de contenedores que cree y, a continuación, envíelas al servicio de contenedores de Lightsail. La versión 2.1.1 y las posteriores funcionarán con el complemento Lightsail Control.
+ Plugin **Lightsail Control (lightsailctl)**: permite acceder a las imágenes AWS CLI del contenedor que se encuentran en la máquina local.

En las siguientes secciones de esta guía se describe adónde ir para descargar estos paquetes de software y cómo instalarlos. Para obtener más información acerca de los servicios de contenedor, consulte [Servicios de contenedores](amazon-lightsail-container-services.md).

**Contenido**
+ [Instalar Docker](#install-software-docker)
+ [Instala el AWS CLI](#install-software-aws-cli)
+ [Instale el complemento Lightsail Control](#install-software-lightsailctl)
  + [Instalación del complemento lightsailctl en Windows](#install-lightsailctl-on-windows)
  + [Instalación del complemento lightsailctl en macOS](#install-lightsailctl-on-macos)
  + [Instalación del complemento lightsailctl en Linux](#install-lightsailctl-on-linux)

## Instalar Docker
<a name="install-software-docker"></a>

Docker es una tecnología que le permite crear, ejecutar, probar e implementar aplicaciones distribuidas basadas en contenedores de Linux. Debe instalar y usar el software Docker si quiere crear sus propias imágenes de contenedores que luego pueda usar con su servicio de contenedores de Lightsail. Para obtener más información, consulte [Crear imágenes de contenedores para sus servicios de contenedores de Lightsail](amazon-lightsail-creating-container-images.md).

Docker está disponible para muchos sistemas operativos diferentes, incluidas las distribuciones de Linux más modernas, como Ubuntu, e incluso en macOS y Windows. Para obtener más información sobre cómo instalar Docker en su sistema operativo concreto, consulte la [guía de instalación de Docker](https://docs.docker.com/engine/installation/#installation).

**nota**  
Instale siempre la versión más reciente de Docker. No se garantiza que las versiones anteriores de Docker funcionen con el AWS CLI complemento Lightsail Control (lightsailctl) que se describe más adelante en esta guía. 

## Instale el AWS CLI
<a name="install-software-aws-cli"></a>

 AWS CLI Se trata de una herramienta de código abierto que le permite interactuar con AWS servicios, como Lightsail, mediante comandos de la consola de la línea de comandos. Debe instalarlo y usarlo AWS CLI para enviar las imágenes de sus contenedores, creadas en su máquina local, a su servicio de contenedores de Lightsail.

 AWS CLI Está disponible en las siguientes versiones:
+ **Versión 2.x**: la versión actual, disponible de forma general, de la AWS CLI. Esta es la versión principal más reciente AWS CLI y es compatible con todas las funciones más recientes, incluida la posibilidad de enviar imágenes de contenedores a sus servicios de contenedores de Lightsail. La versión 2.1.1 y las posteriores funcionarán con el complemento Lightsail Control.
+ **Versión 1.x**: la versión anterior de la AWS CLI que está disponible por motivos de compatibilidad con versiones anteriores. Esta versión no admite la posibilidad de enviar las imágenes de los contenedores a los servicios de contenedores de Lightsail. Por lo tanto, debe instalar la AWS CLI versión 2 en su lugar.

La AWS CLI versión 2 está disponible para los sistemas operativos Linux, macOS y Windows. Para obtener instrucciones sobre cómo instalarla AWS CLI en esos sistemas operativos, consulte [Instalación de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) en la *Guía del AWS CLI usuario*.

## Instale el complemento Lightsail Control
<a name="install-software-lightsailctl"></a>

El complemento Lightsail Control (lightsailctl) es una aplicación ligera que permite acceder a AWS CLI las imágenes del contenedor que creó en su máquina local. Le permite enviar imágenes de contenedores a su servicio de contenedores de Lightsail para que pueda desplegarlas en su servicio.

**Requisitos del sistema**
+ Sistema operativo Windows, macOS o Linux compatible con 64 bits.
+ AWS CLI La versión 2 debe estar instalada en su máquina local para poder utilizar el complemento lightsailctl. Para obtener más información, consulte la sección [Instalación de la AWS CLI](#install-software-aws-cli) anterior de esta guía.

**Uso de la última versión del complemento lightsailctl**

El complemento lightsailctl se actualiza ocasionalmente con funcionalidades mejoradas. Cada vez que utiliza el complemento lightsailctl, este realiza una verificación para confirmar que está utilizando la última versión. Si detecta que hay una nueva versión disponible, le pedirá que actualice a la última versión para aprovechar las características más recientes. Cuando haya disponible una versión actualizada, deberá repetir el proceso de instalación para obtener la última versión del complemento lightsailctl.

A continuación se muestran todas las versiones del complemento lightsailctl, así como las características y las mejoras incluidas en cada versión.
+ **v1.0.0 (publicada el 12 de noviembre de 2020)**: la versión inicial añade funciones a la AWS CLI versión 2 para enviar imágenes de contenedores a un servicio de contenedores de Lightsail.

### Instalación del complemento lightsailctl en Windows
<a name="install-lightsailctl-on-windows"></a>

Complete el procedimiento siguiente para instalar el complemento lightsailctl en Windows.

1. Descargue el ejecutable desde la siguiente URL y guárdelo en el directorio `C:\Temp\lightsailctl\`.

   ```
   https://s3.us-west-2.amazonaws.com/lightsailctl/latest/windows-amd64/lightsailctl.exe
   ```

1. Elija el botón **Inicio de Windows** y, a continuación, busque `cmd`.

1. En los resultados, haga clic con el botón derecho en la aplicación **Símbolo del sistema** y elija **Ejecutar como administrador**.  
![\[Ejecutar Símbolo del sistema como administrador\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/lightsailctl-cmd-run-as-administrator.png)
**nota**  
Puede que aparezca un mensaje en el que se le pregunte si desea permitir que el Símbolo del sistema realice cambios en el dispositivo. Debe elegir **Sí** para continuar con la instalación.

1. Ingrese el siguiente comando para definir una variable de entorno de ruta que apunte al directorio `C:\Temp\lightsailctl\`, donde guardó el complemento lightsailctl.

   ```
   setx PATH "%PATH%;C:\Temp\lightsailctl" /M
   ```

   Debería ver un resultado similar al del siguiente ejemplo:  
![\[Respuesta de la línea de comandos al comando setx\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/lighstailctl-setx-command.png)

El comando `setx` se truncará si supera los 1024 caracteres. Utilice el siguiente procedimiento para configurar manualmente la variable de entorno de la ruta si ya tiene varias variables configuradas en su RUTA. 

1. En el menú **Start** (Inicio), haga clic en **Control Panel** (Panel de control).

1. Seleccione **System and Security** (Sistema y seguridad), y a continuación, **System** (Sistema).

1. Elija **Advanced system settings (Configuración avanzada del sistema)**.

1. En el cuadro de diálogo **System Properties** (Propiedades del sistema), abra la pestaña **Advanced** (Avanzadas) y elija **Environment Variables** (Variables de entorno).

1. En el cuadro **System Variables** (Variables de sistema) del cuadro de diálogo **Environment Variables** (Variables de entorno), seleccione **Path** (Ruta).

1. Elija el botón **Edit** (Editar) ubicado debajo del cuadro **System Variables** (Variables del sistema).  
![\[Variables del sistema de Windows\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/lightsail-windows-system-variables.png)

1. Seleccione **New** (Nuevo) y, a continuación, introduzca la siguiente ruta: `C:\Temp\lightsailctl\`  
![\[Variables del entorno de Windows\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/lightsail-windows-edit-env-variable.png)

1. Elija **OK** (Aceptar) en tres cuadros de diálogo sucesivos y, a continuación, cierre el cuadro de diálogo **System** (Sistema).

Ahora está listo para usar AWS Command Line Interface (AWS CLI) para enviar imágenes de contenedores a su servicio de contenedores de Lightsail. Para obtener más información, consulte [Inserción y administración de imágenes de contenedor](amazon-lightsail-pushing-container-images.md).

### Instalación del complemento lightsailctl en macOS
<a name="install-lightsailctl-on-macos"></a>

Complete uno de los procedimientos siguientes para descargar e instalar el complemento lightsailctl en macOS.

**Descarga e instalación de Homebrew**

1. Abra una ventana de terminal.

1. Ingrese el comando siguiente para descargar e instalar el complemento lightsailctl.

   ```
   brew install aws/tap/lightsailctl
   ```
**nota**  
Para obtener más información sobre Homebrew, visite el sitio web de [Homebrew](https://brew.sh/).

**Descarga e instalación manuales**

1. Abra una ventana de terminal.

1. Ingrese el comando siguiente para descargar el complemento lightsailctl y copiarlo en la carpeta bin.

   ```
   curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/darwin-amd64/lightsailctl" -o "/usr/local/bin/lightsailctl"
   ```

1. Ingrese el comando siguiente para convertir el complemento en ejecutable.

   ```
   chmod +x /usr/local/bin/lightsailctl
   ```

1. Ingrese el comando siguiente para borrar los atributos extendidos para el complemento.

   ```
   xattr -c /usr/local/bin/lightsailctl
   ```

Ahora está listo para utilizarla para enviar imágenes de contenedores AWS CLI a su servicio de contenedores de Lightsail. Para obtener más información, consulte [Inserción y administración de imágenes de contenedor](amazon-lightsail-pushing-container-images.md).

### Instalación del complemento lightsailctl en Linux
<a name="install-lightsailctl-on-linux"></a>

Complete el siguiente procedimiento para instalar el complemento de servicios de contenedores de Lightsail en Linux.

1. Abra una ventana de terminal.

1. Ingrese el comando siguiente para descargar el complemento lightsailctl.
   + Para la versión de arquitectura AMD de 64 bits del complemento:

     ```
     curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/linux-amd64/lightsailctl" -o "/usr/local/bin/lightsailctl"
     ```
   + Para la versión de arquitectura ARM de 64 bits del complemento:

     ```
     curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/linux-arm64/lightsailctl" -o "/usr/local/bin/lightsailctl"
     ```

1. Ingrese el comando siguiente para convertir el complemento en ejecutable.

   ```
   sudo chmod +x /usr/local/bin/lightsailctl
   ```

   Ahora está listo para utilizarla para enviar imágenes de contenedores AWS CLI a su servicio de contenedores de Lightsail. Para obtener más información, consulte [Inserción y administración de imágenes de contenedor](amazon-lightsail-pushing-container-images.md).

# Otorgue a los servicios de contenedores de Lightsail acceso a los repositorios privados de Amazon ECR
<a name="amazon-lightsail-container-service-ecr-private-repo-access"></a>

Amazon Elastic Container Registry (Amazon ECR) es AWS un servicio gestionado de registro de imágenes de contenedores que admite repositorios privados con permisos basados en recursos mediante (IAM). AWS Identity and Access Management Puedes dar acceso a tus servicios de contenedores de Amazon Lightsail a tus repositorios privados de Amazon ECR. Región de AWS A continuación, puede implementar imágenes desde su repositorio privado a sus servicios de contenedor.

Puede gestionar el acceso a sus servicios de contenedores de Lightsail y a sus repositorios privados de Amazon ECR mediante la consola de Lightsail o el (). AWS Command Line Interface AWS CLI Sin embargo, le recomendamos que utilice la consola Lightsail porque simplifica el proceso.

Para obtener más información acerca de los servicios de contenedor, consulte [Servicios de contenedores](amazon-lightsail-container-services.md). Para obtener más información sobre Amazon ECR, consulte la [Guía del usuario de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html).

**Contenido**
+ [Permisos necesarios](#ecr-private-repos-permissions)
+ [Utilice la consola de Lightsail para gestionar el acceso a los repositorios privados](#ecr-private-repo-access-lightsail-console)
+ [Utilícela AWS CLI para administrar el acceso a los repositorios privados](#ecr-private-repo-access-cli)
  + [Activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR](#activate-ecr-puller-role)
  + [Determinar si el repositorio privado de Amazon ECR tiene una declaración de política](#identify-ecr-repo-policy-statement)
    + [Agregar una política a un repositorio privado que no tenga una declaración de política](#ecr-private-repo-add-policy-no-policy)
    + [Agregar una política a un repositorio privado que tenga una declaración de política](#ecr-private-repo-add-policy-existing-policy)

## Permisos necesarios
<a name="ecr-private-repos-permissions"></a>

El usuario que administrará el acceso de los servicios de contenedores de Lightsail a los repositorios privados de Amazon ECR debe tener una de las siguientes políticas de permisos en IAM. Para obtener más información, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de AWS Identity and Access Management *.

**Conceder acceso a cualquier repositorio privado de Amazon ECR**

La siguiente política de permisos concede a un usuario permiso para configurar el acceso a cualquier repositorio privado de Amazon ECR.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageEcrPrivateRepositoriesAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:SetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:DeleteRepositoryPolicy",
                "ecr:GetRepositoryPolicy"
            ],
            "Resource": "arn:aws:ecr:*:111122223333:repository/*"
        }
    ]
}
```

------

En la política, sustitúyalo por tu número de ID de *AwsAccountId* cuenta. AWS 

**Conceder acceso a un determinado repositorio privado de Amazon ECR**

La siguiente política de permisos concede a un usuario permiso para configurar el acceso a un determinado repositorio privado de Amazon ECR en una Región de AWS específica.

En el comando, sustituya el texto del ejemplo siguiente por el suyo:
+ *AwsRegion*— El Región de AWS código (por ejemplo`us-east-1`) del repositorio privado. El servicio de contenedores de Lightsail debe estar en el Región de AWS mismo lugar que los repositorios privados a los que desea acceder.
+ *AwsAccountId*— El número de identificación de su AWS cuenta.
+ *RepositoryName*— El nombre del repositorio privado al que quieres gestionar el acceso.

A continuación se muestra un ejemplo de la política de permisos rellenada con valores de ejemplo.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageEcrPrivateRepositoriesAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:SetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:DeleteRepositoryPolicy",
                "ecr:GetRepositoryPolicy"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-private-repo"
        }
    ]
}
```

------

## Utilice la consola de Lightsail para gestionar el acceso a los repositorios privados
<a name="ecr-private-repo-access-lightsail-console"></a>

Complete el siguiente procedimiento para utilizar la consola de Lightsail para gestionar el acceso de un servicio de contenedores de Lightsail a un repositorio privado de Amazon ECR.

1. Inicie sesión en la consola de [Lightsail](https://lightsail.aws.amazon.com/).

1. En el panel de navegación izquierdo, elija **Contenedores**.

1. Elija el nombre del servicio de contenedor para el que desea configurar el acceso a un repositorio privado de Amazon ECR.  
![\[Servicio de contenedores en la consola de Lightsail\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-card.png)

1. Elija la pestaña **Imágenes**.  
![\[Pestaña Imágenes en la página de administración de servicios de contenedores de la consola Lightsail\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-images-tab.png)

1. Elija **Agregar repositorio** para conceder acceso a su servicio de contenedor a un repositorio privado de Amazon ECR.
**nota**  
Puede elegir **Eliminar** para eliminar el acceso de su servicio de contenedor a un repositorio privado de Amazon ECR agregado anteriormente.  
![\[Sección de repositorios privados de Amazon ECR de la pestaña Imágenes\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-ecr-repos-section.png)

1. En el menú desplegable que aparece, seleccione el repositorio privado al que desea acceder y luego elija **Add** (Agregar).  
![\[Selección desplegable de repositorios privados de Amazon ECR\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-ecr-repos-selection.png)

   Lightsail tarda unos minutos en activar la función de IAM del extractor de imágenes Amazon ECR para su servicio de contenedores, que incluye un nombre de recurso principal de Amazon (ARN). A continuación, Lightsail añade automáticamente el ARN principal del rol de IAM a la política de permisos del repositorio privado de Amazon ECR que haya seleccionado. Esto otorga al servicio de contenedor acceso al repositorio privado y a sus imágenes. No cierre la ventana del navegador hasta que el modal que aparece indique que el proceso se completó y pueda elegir **Continue** (Continuar).  
![\[Modal que confirma que se están agregando permisos al repositorio privado de Amazon ECR\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-ecr-repos-confirmation-modal.png)

1. Elija **Continue** (Continuar) cuando se complete la activación.

   Después de agregar el repositorio privado de Amazon ECR seleccionado, aparecerá en la sección **Repositorios privados de Amazon ECR** de la página. La página incluye instrucciones sobre cómo implementar una imagen del repositorio privado en su servicio de contenedores de Lightsail. Para usar una imagen de su repositorio privado, especifique el formato URI que se muestra en la página como valor **Image** (Imagen) al crear la implementación de su servicio de contenedor. En el URI que especifique, sustituya el ejemplo por *\$1image tag\$1* la etiqueta de la imagen que desee implementar. Para obtener más información, consulte [Creación y administración de implementaciones del servicio de contenedor](amazon-lightsail-container-services-deployments.md).  
![\[Pasos siguientes después de agregar un repositorio privado de Amazon ECR\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-service-ecr-repos-next-steps.png)

## AWS CLI Utilízala para administrar el acceso a los repositorios privados
<a name="ecr-private-repo-access-cli"></a>

La administración del acceso de un servicio de contenedores de Lightsail a un repositorio privado de Amazon ECR mediante AWS CLI() requiere AWS Command Line Interface los siguientes pasos:

**importante**  
Le recomendamos que utilice la consola de Lightsail para gestionar el acceso de un servicio de contenedores de Lightsail a un repositorio privado de Amazon ECR, ya que simplifica el proceso. Para obtener más información, consulte [Uso de la consola de Lightsail para administrar el acceso a los repositorios privados](#ecr-private-repo-access-lightsail-console), anteriormente en esta guía.

1. **Activar o desactivar la función de IAM del extractor de imágenes de Amazon ECR: utilice el comando de Lightsail AWS CLI `update-container-service` para activar o desactivar la función** de IAM del extractor de imágenes de Amazon ECR. Se crea un nombre de recurso de Amazon (ARN) de entidad principal para el rol de IAM del extractor de imágenes de Amazon ECR cuando lo activa. Para más información, consulte la sección [Activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR](#activate-ecr-puller-role) de esta guía.

1. **Determinar si el repositorio privado de Amazon ECR tiene una declaración de política**: después de activar el rol de IAM de extractor de imágenes de Amazon ECR, debe determinar si el repositorio privado de Amazon ECR al que desea acceder con su servicio de contenedor tiene una declaración de política existente. Para obtener más información, consulte [Determinar si el repositorio privado de Amazon ECR tiene una declaración de política](#identify-ecr-repo-policy-statement) más adelante en esta guía. 

   Agregue el rol de IAM de entidad principal ARN a su repositorio mediante uno de los siguientes métodos, dependiendo de si su repositorio tiene una declaración de política existente:

   1. **Agregue una política a un repositorio privado que no tenga una declaración de política**: utilice el AWS CLI `set-repository-policy` comando Amazon ECR para agregar el ARN principal del rol de extractor de imágenes de Amazon ECR para su servicio de contenedores a un repositorio privado que tenga una política existente. Para más información, consulte [Agregar una política a un repositorio privado que no tiene una declaración de política](#ecr-private-repo-add-policy-no-policy) más adelante en esta guía.

   1. **Añadir una política a un repositorio privado que tenga una declaración de política**: utilice el AWS CLI `set-repository-policy` comando de Amazon ECR para añadir la función de extractor de imágenes de Amazon ECR para su servicio de contenedores a un repositorio privado que no tenga una política existente. Para más información, consulte [Agregar una política a un repositorio privado que tiene una declaración de política](#ecr-private-repo-add-policy-existing-policy) más adelante en esta guía.

### Activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR
<a name="activate-ecr-puller-role"></a>

Complete el siguiente procedimiento para activar o desactivar la función IAM del extractor de imágenes Amazon ECR para su servicio de contenedores Lightsail. Puede activar o desactivar la función de IAM del extractor de imágenes Amazon ECR mediante el comando AWS CLI `update-container-service` de Lightsail. Para obtener más información, consulte [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/lightsail/update-container-service.html) en la *Referencia de comandos de la AWS CLI *.

**nota**  
Debe instalar AWS CLI y configurar Lightsail para poder continuar con este procedimiento. Para obtener más información, consulte [Configurar AWS CLI para que funcione con Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Abra una ventana del símbolo del sistema o del terminal.

1. Ingrese el siguiente comando para actualizar un servicio de contenedor y activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR.

   ```
   aws lightsail update-container-service --service-name ContainerServiceName --private-registry-access ecrImagePullerRole={isActive=RoleActivationState} --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *ContainerServiceName*— El nombre del servicio de contenedores para el que se va a activar o desactivar la función de IAM del extractor de imágenes Amazon ECR.
   + *RoleActivationState*— El estado de activación de la función de IAM del extractor de imágenes Amazon ECR. Especifique `true` para activar el rol, o `false` para desactivarlo.
   + *AwsRegionCode*— El Región de AWS código del servicio de contenedores (por ejemplo,). `us-east-1`

   Ejemplos:
   + Para activar el rol de IAM del extractor de imágenes de Amazon ECR:

     ```
     aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
     ```
   + Para desactivar el rol de IAM del extractor de imágenes de Amazon ECR:

     ```
     aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=false} --region us-east-1
     ```

1. Si:
   + **Activó el rol del extractor de imágenes de Amazon ECR**: espere al menos 30 segundos después de recibir la respuesta anterior. Luego, continúe al siguiente paso para obtener el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR para su servicio de contenedor.
   + **Desactivó el rol de extractor de imágenes de Amazon ECR**: si previamente agregó el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR a la política de permisos del repositorio privado de Amazon ECR, debe eliminar esa política de permisos del repositorio. Para más información, consulte [Eliminación de una declaración de política de repositorio privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/delete-repository-policy.html) en la *Guía del usuario de Amazon ECR*.

1. Escriba el siguiente comando para obtener el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR para el servicio de contenedor.

   ```
   aws lightsail get-container-services --service-name ContainerServiceName --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *ContainerServiceName*— El nombre del servicio de contenedores del que va a obtener el ARN principal del rol de IAM del extractor de imágenes Amazon ECR.
   + *AwsRegionCode*— El Región de AWS código del servicio de contenedores (por ejemplo,). `us-east-1`

   Ejemplo:

   ```
   aws lightsail get-container-services --service-name my-container-service --region us-east-1
   ```

   Busque el ARN de entidad principal del rol de IAM del extractor de imágenes ECR en la respuesta. Si aparece un rol, cópielo o anótelo. Lo necesitará para la siguiente sección de esta guía. A continuación, debe determinar si existe una declaración de política existente en el repositorio privado de Amazon ECR al que desea acceder mediante su servicio de contenedor. Siga en la sección [Determinar si el repositorio privado de Amazon ECR tiene una declaración de política](#identify-ecr-repo-policy-statement) de esta guía.

### Determinar si el repositorio privado de Amazon ECR tiene una declaración de política
<a name="identify-ecr-repo-policy-statement"></a>

Use el siguiente procedimiento para determinar si el repositorio privado de Amazon ECR tiene una declaración de política. Puede usar el AWS CLI `get-repository-policy` comando para Amazon ECR. Para obtener más información, consulte [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-repository-policy.html) en la *Referencia de comandos de la AWS CLI *.

**nota**  
Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de poder continuar con este procedimiento. Para obtener más información, consulte [Configuración de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) en la *Guía del usuario de Amazon ECR*.

1. Abra una ventana del símbolo del sistema o del terminal.

1. Escriba el siguiente comando para obtener la declaración de política correspondiente a un repositorio privado específico.

   ```
   aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *RepositoryName*— El nombre del repositorio privado para el que desea configurar el acceso a un servicio de contenedores de Lightsail.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).

   Ejemplo:

   ```
   aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
   ```

   Debería ver una de las siguientes respuestas:
   + **RepositoryPolicyNotFoundException**— Tu repositorio privado no tiene una declaración de política. Si su repositorio no tiene una declaración de política, siga los pasos de la sección [Agregar una política a un repositorio privado que no tiene una declaración de política](#ecr-private-repo-add-policy-no-policy) más adelante en esta guía.  
![\[Respuesta al get-repository-policy comando para un repositorio privado que no tiene una declaración de política\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-no-policy-statement.png)
   + **Se ha encontrado una política de repositorio** - El repositorio privado tiene una declaración de política y se muestra en la respuesta de su solicitud. Si su repositorio tiene una declaración de política, copie la política existente y luego siga los pasos en la sección [Agregar una política a un repositorio privado que no tiene una declaración de política](#ecr-private-repo-add-policy-existing-policy) más adelante en esta guía.  
![\[Respuesta al get-repository-policy comando de un repositorio privado que tiene una declaración de política\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-existing-policy-statement.png)

### Agregar una política a un repositorio privado que no tenga una declaración de política
<a name="ecr-private-repo-add-policy-no-policy"></a>

Complete el siguiente procedimiento para agregar una política a un repositorio privado de Amazon ECR que no tenga una declaración de política. La política que añada debe incluir el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de su servicio de contenedores Lightsail. Esto otorga acceso a su servicio de contenedor para desplegar imágenes desde el repositorio privado.

**importante**  
Lightsail añade automáticamente la función de extractor de imágenes de Amazon ECR a sus repositorios privados de Amazon ECR cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tiene que agregar manualmente el rol de extractor de imágenes de Amazon ECR a sus repositorios privados mediante el procedimiento en esta sección. Para obtener más información, consulte [Uso de la consola de Lightsail para administrar el acceso a los repositorios privados](#ecr-private-repo-access-lightsail-console), anteriormente en esta guía.

Puede agregar una política a un repositorio privado mediante la AWS CLI. Para ello, cree un archivo JSON que contenga la política y, a continuación, haga referencia a ese archivo mediante el comando `set-repository-policy` para Amazon ECR. Para obtener más información, consulte [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) en la *Referencia de comandos de la AWS CLI *.

**nota**  
Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de continuar con este procedimiento. Para obtener más información, consulte [Configuración de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) en la *Guía del usuario de Amazon ECR*.

1. Abra un editor de texto y pegue la siguiente declaración de política en un nuevo archivo de texto.

------
#### [ JSON ]

****  

   ```
   { 
     "Version":"2012-10-17",		 	 	 
     "Statement": [
     {
         "Sid": "AllowLightsailPull-ecr-private-repo-demo",
         "Effect": "Allow",
         "Principal": {
           "AWS": "IamRolePrincipalArn"
         },
         "Action": [
           "ecr:BatchGetImage",
           "ecr:GetDownloadUrlForLayer"
         ]
       }
     ]
   }
   ```

------

   En el texto, *IamRolePrincipalArn* sustitúyalo por el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de tu servicio de contenedores que obtuviste anteriormente en esta guía.

1. Guarde el archivo como `ecr-policy.json` en una ubicación accesible del equipo (por ejemplo, `C:\Temp\ecr-policy.json` en Windows o `/tmp/ecr-policy.json` en macOS o Linux).

1. Anote la ubicación de la ruta del `ecr-policy.json` archivo creado. Especificará en un comando más adelante en este procedimiento.

1. Abra una ventana del símbolo del sistema o del terminal.

1. Ingrese el siguiente comando para establecer la declaración de política para el repositorio privado al que desea acceder con su servicio de contenedor.

   ```
   aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *RepositoryName*— El nombre del repositorio privado para el que desea añadir la política.
   + *path/to/*— La ruta al `ecr-policy.json` archivo de tu ordenador que creaste anteriormente en esta guía.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).

   Ejemplos:
   + En Windows:

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
     ```
   + En Linux o macOS:

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1
     ```

   El servicio de contenedor ahora puede acceder a su repositorio privado y a sus imágenes. Para usar una imagen del repositorio, especifique el siguiente URI como valor de **Imagen** para la implementación del servicio de contenedor. En la URI, reemplaza el ejemplo por *tag* la etiqueta de la imagen que deseas implementar. Para obtener más información, consulte [Creación y administración de implementaciones del servicio de contenedor](amazon-lightsail-container-services-deployments.md).

   ```
   AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag
   ```

   En el URI, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *AwsAccountId*— Tu número AWS de ID de cuenta.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).
   + *RepositoryName*— El nombre del repositorio privado desde el que se va a implementar una imagen de contenedor.
   + *ImageTag*— La etiqueta de la imagen del contenedor del repositorio privado que se va a implementar en el servicio de contenedores.

   Ejemplo:

   ```
   111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage
   ```

### Agregar una política a un repositorio privado que tenga una declaración de política
<a name="ecr-private-repo-add-policy-existing-policy"></a>

Complete el siguiente procedimiento para agregar una política a un repositorio privado de Amazon ECR que tiene una declaración de política. La política que añada debe incluir la política existente y una nueva política que contenga el ARN principal del rol de IAM del extractor de imágenes de Amazon ECR de su servicio de contenedores Lightsail. Esto mantiene los permisos existentes en su repositorio privado a la vez que otorga acceso a su servicio de contenedor para implementar imágenes desde el repositorio privado.

**importante**  
Lightsail añade automáticamente la función de extractor de imágenes de Amazon ECR a sus repositorios privados de Amazon ECR cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tiene que agregar manualmente el rol de extractor de imágenes de Amazon ECR a sus repositorios privados mediante el procedimiento en esta sección. Para obtener más información, consulte [Uso de la consola de Lightsail para administrar el acceso a los repositorios privados](#ecr-private-repo-access-lightsail-console), anteriormente en esta guía.

Puede agregar una política a un repositorio privado mediante la AWS CLI. Para ello, se crea un archivo JSON que contiene la política existente y la nueva política. A continuación, haga referencia a ese archivo con el comando `set-repository-policy` para Amazon ECR. Para obtener más información, consulte [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) en la *Referencia de comandos de la AWS CLI *.

**nota**  
Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de poder continuar con este procedimiento. Para obtener más información, consulte [Configuración de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) en la *Guía del usuario de Amazon ECR*.

1. Abra una ventana del símbolo del sistema o del terminal.

1. Escriba el siguiente comando para obtener la declaración de política correspondiente a un repositorio privado específico.

   ```
   aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *RepositoryName*— El nombre del repositorio privado para el que desea configurar el acceso a un servicio de contenedores de Lightsail.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).

   Ejemplo:

   ```
   aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
   ```

1. En la respuesta, copie la política existente y continúe con el siguiente paso.

   Debe copiar solo el contenido del `policyText` que aparece entre las comillas dobles, como se destaca en el siguiente ejemplo.  
![\[Respuesta al get-repository-policy comando para un repositorio privado que no tiene una declaración de política\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-existing-policy-copy-statement.png)

1. Abra un editor de texto y pegue la política existente de su repositorio privado que copió en el paso anterior.

   El resultado debe ser similar al siguiente ejemplo:  
![\[Ejemplo de archivo JSON de declaración de política\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-existing-policy-statement-json.png)

1. En el texto que pegó, reemplace `\n` con saltos de línea y borre el resto `\`.

   El resultado debe ser similar al siguiente ejemplo:  
![\[Ejemplo de archivo JSON de instrucción de política editada\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-edited.png)

1. Pegue la siguiente declaración política al final del archivo de texto.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowLightsailPull-ecr-private-repo-demo",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "IamRolePrincipalArn"
               },
               "Action": [
                   "ecr:BatchGetImage",
                   "ecr:GetDownloadUrlForLayer"
               ]
           }
       ]
   }
   ```

------

1. En el texto, *IamRolePrincipalArn* sustitúyalo por el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de tu servicio de contenedores que obtuviste anteriormente en esta guía.

   El resultado debe ser similar al siguiente ejemplo:  
![\[Ejemplo de archivo JSON de declaración de política completa\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-completed.png)

1. Guarde el archivo como `ecr-policy.json` en una ubicación accesible del equipo (por ejemplo, `C:\Temp\ecr-policy.json` en Windows o `/tmp/ecr-policy.json` en macOS o Linux).

1. Anote la ubicación de la ruta del archivo `ecr-policy.json`. Especificará en un comando más adelante en este procedimiento.

1. Abra una ventana del símbolo del sistema o del terminal.

1. Ingrese el siguiente comando para establecer la declaración de política para el repositorio privado al que desea acceder con su servicio de contenedor.

   ```
   aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *RepositoryName*— El nombre del repositorio privado para el que desea añadir la política.
   + *path/to/*— La ruta al `ecr-policy.json` archivo de tu ordenador que creaste anteriormente en esta guía.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).

   Ejemplos:
   + En Windows:

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
     ```
   + En Linux o macOS:

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1
     ```

   Debería ver una respuesta similar a la del siguiente ejemplo.  
![\[Respuesta al set-repository-policy comando\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/ecr-set-policy-statement-response.png)

   Si ejecuta el comando `get-repository-policy` de nuevo, debería ver la nueva declaración de política adicional en su repositorio privado. El servicio de contenedor ahora puede acceder a su repositorio privado y a sus imágenes. Para usar una imagen del repositorio, especifique el siguiente URI como valor de **Imagen** para la implementación del servicio de contenedor. En la URI, reemplaza el ejemplo por *tag* la etiqueta de la imagen que deseas implementar. Para obtener más información, consulte [Creación y administración de implementaciones del servicio de contenedor](amazon-lightsail-container-services-deployments.md).

   ```
   AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag
   ```

   En el URI, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *AwsAccountId*— Tu número AWS de ID de cuenta.
   + *AwsRegionCode*— El Región de AWS código del repositorio privado (por ejemplo,`us-east-1`).
   + *RepositoryName*— El nombre del repositorio privado desde el que se va a implementar una imagen de contenedor.
   + *ImageTag*— La etiqueta de la imagen del contenedor del repositorio privado que se va a implementar en el servicio de contenedores.

   Ejemplo:

   ```
   111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage
   ```