

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie e teste imagens do Docker para serviços de contêiner Lightsail
<a name="amazon-lightsail-creating-container-images"></a>

Com o Docker, você pode desenvolver, executar, testar e implantar aplicações distribuídas que são baseadas em contêineres. Os serviços de contêiner do Amazon Lightsail usam imagens de contêiner do Docker em implantações para iniciar contêineres.

Neste guia, mostramos como criar uma imagem de contêiner na sua máquina local usando um Dockerfile. Depois que sua imagem estiver criada, você poderá enviá-la para o serviço de contêiner do Lightsail para implantá-la.

Para concluir os procedimentos deste guia, você deve ter uma compreensão básica do Docker e de como ele funciona. Para obter mais informações sobre o Docker, consulte [O que é o Docker?](https://aws.amazon.com/docker/) e [Visão geral do Docker](https://docs.docker.com/get-started/overview/).

**Índice**
+ [Etapa 1: Concluir os pré-requisitos](#create-container-image-prerequisite)
+ [Etapa 2: criar um Dockerfile e construir uma imagem de contêiner](#create-container-image-create-dockerfile)
+ [Etapa 3: executar sua nova imagem de contêiner](#create-container-image-run-container)
+ [(Opcional) Etapa 4: limpar os contêineres em execução na sua máquina local](#create-container-image-cleanup)
+ [Próximas etapas após a criação das imagens de contêiner](#create-container-image-next-steps)

## Etapa 1: Concluir os pré-requisitos
<a name="create-container-image-prerequisite"></a>

Antes de começar, você deve instalar o software necessário para criar contêineres e enviá-los para o serviço de contêiner do Lightsail. Por exemplo, você deve instalar e usar o Docker para criar e construir imagens de contêiner que podem ser usadas com o serviço de contêiner do Lightsail. Para obter mais informações, consulte [Instalação de software para gerenciar imagens de contêiner dos serviços de contêiner do Amazon Lightsail](amazon-lightsail-install-software.md).

## Etapa 2: criar um Dockerfile e construir uma imagem de contêiner
<a name="create-container-image-create-dockerfile"></a>

Conclua o procedimento a seguir para criar um Dockerfile e construa com ele uma imagem de contêiner do Docker do `mystaticwebsite`. A imagem do contêiner será usada em um site estático simples hospedado em um servidor Web Apache no Ubuntu.

1. Crie uma pasta `mystaticwebsite` em sua máquina local em que você armazenará seu Dockerfile.

1. Crie um Dockerfile na pasta que acabou de criar.

   O Dockerfile não usa uma extensão de arquivo, como `.TXT`. O nome completo do arquivo é `Dockerfile`.

1. Copie um dos seguintes blocos de código, dependendo de como você deseja configurar sua imagem de contêiner, e cole-o em seu Dockerfile:
   + **Se você quiser criar uma imagem de contêiner de site estático simples com uma mensagem Hello World**, então copie o bloco de código a seguir e cole-o no Dockerfile. Esse exemplo de código usa a imagem do Ubuntu 18.04. As instruções `RUN` atualizam os caches do pacote, instalam e configuram o Apache e imprimem uma mensagem Hello World na raiz do documento do servidor Web. A instrução `EXPOSE` expõe a porta 80 do contêiner e a instrução `CMD` inicia o 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"]
     ```
   + **Se você quiser usar seu próprio conjunto de arquivos HTML para sua imagem de contêiner de site estático**, crie uma pasta `html` na mesma pasta em que você armazena seu Dockerfile. Em seguida, coloque seus arquivos HTML nessa pasta.

     Depois que seus arquivos HTML estiverem na pasta `html`, copie o bloco de código a seguir e cole-o no Dockerfile. Esse exemplo de código usa a imagem do Ubuntu 18.04. As instruções `RUN` atualizam os caches do pacote, instalam e configuram o Apache. A instrução `COPY` copia o conteúdo da pasta html na raiz do documento do servidor Web. A instrução `EXPOSE` expõe a porta 80 do contêiner e a instrução `CMD` inicia o 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 um prompt de comando ou uma janela de terminal e altere o diretório para a pasta na qual você está armazenando seu Dockerfile.

1. Digite o comando a seguir para construir sua imagem de contêiner usando o Dockerfile na pasta. Esse comando cria uma nova imagem de contêiner do Docker chamada `mystaticwebsite`.

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

   Você verá uma mensagem confirmando que sua imagem foi criada com sucesso.

1. Digite o comando a seguir para visualizar as imagens de contêiner na sua máquina local.

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

   Você verá um resultado semelhante ao seguinte exemplo, mostrando a nova imagem de contêiner criada.  
![\[Resultado do comando de imagens do Docker\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/docker-images-command-result.png)

   Sua imagem de contêiner recém-construída está pronta para ser testada para executar um novo contêiner em sua máquina local. Siga para a próxima seção deste guia [Etapa 3: executar sua nova imagem de contêiner](#create-container-image-run-container).

## Etapa 3: executar sua nova imagem de contêiner
<a name="create-container-image-run-container"></a>

Conclua as etapas a seguir para executar a nova imagem de contêiner que você criou.

1. Em um prompt de comando ou janela de terminal, digite o comando a seguir para executar a imagem de contêiner que você construiu na seção anterior deste guia [Etapa 2: criar um Dockerfile e construir uma imagem de contêiner](#create-container-image-create-dockerfile). A opção `-p 8080:80` mapeia a porta 80 exposta do contêiner para a porta 8080 da sua máquina local. A opção `-d` especifica que o contêiner deve ser executado no modo desvinculado.

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

1. Digite o comando a seguir para visualizar os contêineres em execução.

   ```
   docker container ls -a
   ```

   Você verá um resultado semelhante ao seguinte exemplo, mostrando o novo contêiner em execução.  
![\[Resultado do comando de container do Docker\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Para confirmar se o contêiner está funcionando, abra uma nova janela do navegador e vá para `http://localhost:8080`. Você verá uma mensagem semelhante ao exemplo a seguir. Isso confirma que o contêiner está funcionando na sua máquina local.  
![\[Site estático em execução em um contêiner do Docker\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

   Sua imagem de contêiner recém-construída está pronta para ser enviada para sua conta do Lightsail para que você possa implantá-la em seu serviço de contêiner do Lightsail. Para obter mais informações, consulte [Envio e gerenciamento de imagens de contêiner nos seus serviços de contêiner do Amazon Lightsail](amazon-lightsail-pushing-container-images.md).

## (Opcional) Etapa 4: limpar os contêineres em execução na sua máquina local
<a name="create-container-image-cleanup"></a>

Agora que você criou uma imagem de contêiner que pode ser enviada para o serviço de contêiner do Lightsail, é hora de limpar os contêineres que estão sendo executados na sua máquina local como resultado dos procedimentos deste guia.

Conclua as etapas a seguir para limpar os contêineres em execução na sua máquina local:

1. Execute o comando a seguir para visualizar os contêineres que estão em execução na sua máquina local.

   ```
   docker container ls -a
   ```

   Você deve ver um resultado semelhante ao seguinte, que lista os nomes dos contêineres em execução na sua máquina local.  
![\[Resultado do comando de container do Docker\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Execute o comando a seguir para remover o contêiner em execução que você criou anteriormente neste guia. Isso força o contêiner a ser interrompido e o exclui permanentemente.

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

   No comando, substitua < ContainerName > pelo nome do contêiner que você deseja parar e exclua.

   Exemplo:

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

   O contêiner que foi criado como resultado deste guia deve ser excluído agora.

## Próximas etapas após a criação das imagens de contêiner
<a name="create-container-image-next-steps"></a>

Depois de criar suas imagens de contêiner, envie-as para o serviço de contêiner do Lightsail quando estiver pronto para implantá-las. Para obter mais informações, consulte [Gerenciar imagens do serviço de contêiner Lightsail](amazon-lightsail-pushing-container-images.md).

**Topics**
+ [Etapa 1: Concluir os pré-requisitos](#create-container-image-prerequisite)
+ [Etapa 2: criar um Dockerfile e construir uma imagem de contêiner](#create-container-image-create-dockerfile)
+ [Etapa 3: executar sua nova imagem de contêiner](#create-container-image-run-container)
+ [(Opcional) Etapa 4: limpar os contêineres em execução na sua máquina local](#create-container-image-cleanup)
+ [Próximas etapas após a criação das imagens de contêiner](#create-container-image-next-steps)
+ [Gerenciar imagens de contêiner](amazon-lightsail-pushing-container-images.md)
+ [Instalar o plug-in de serviços de contêiner](amazon-lightsail-install-software.md)
+ [Acesso ao repositório privado do ECR](amazon-lightsail-container-service-ecr-private-repo-access.md)

# Envie, visualize e exclua imagens de contêiner para um serviço de contêiner Lightsail
<a name="amazon-lightsail-pushing-container-images"></a>

Ao criar uma implantação em seu serviço de contêiner Amazon Lightsail, você deve especificar uma imagem de contêiner de origem para cada entrada de contêiner. Você pode usar imagens de um registro público, como o Amazon ECR Public Gallery, ou pode usar imagens criadas em sua máquina local. Neste guia, te mostramos como enviar imagens de contêiner de sua máquina local para seu serviço de contêiner Lightsail. Para obter mais informações sobre a criação de imagens de contêiner, consulte [Create container service images](amazon-lightsail-creating-container-images.md).

**Índice**
+ [Pré-requisitos](#push-container-images-prerequisites)
+ [Enviar imagens de contêiner de sua máquina local para seu serviço de contêiner](#push-container-images)
+ [Exibir imagens de contêiner armazenadas em seu serviço de contêiner](#view-pushed-container-images)
+ [Excluir imagens de contêiner armazenadas em seu serviço de contêiner](#delete-stored-container-images)

## Pré-requisitos
<a name="push-container-images-prerequisites"></a>

Conclua os seguintes pré-requisitos antes de começar a enviar suas imagens de contêiner para seu serviço de contêiner:
+ Crie o seu serviço de contêiner na sua conta do Lightsail. Para obter mais informações, consulte [Criação de Serviços de Contêiner do Amazon Lightsail](amazon-lightsail-creating-container-services.md).
+ Instale o software em sua máquina local que você precisa para criar suas próprias imagens de contêiner e enviá-las para o seu serviço de contêiner Lightsail. Para obter mais informações, consulte [Instalação de software para gerenciar imagens de contêiner de seus serviços de contêiner do Amazon Lightsail](amazon-lightsail-install-software.md).
+ Crie imagens de contêiner na sua máquina local que você pode enviar para seu serviço de contêiner Lightsail. Para obter mais informações, consulte [Criação de imagens de contêiner para os seus serviços de contêiner do Amazon Lightsail](amazon-lightsail-creating-container-images.md).

## Enviar imagens de contêiner de sua máquina local para seu serviço de contêiner
<a name="push-container-images"></a>

Conclua o procedimento a seguir para enviar suas imagens de contêiner para o seu serviço de contêiner.

1. Abra um prompt de comando ou uma janela de terminal.

1. No prompt de comando ou na janela do terminal, insira o seguinte comando para exibir as imagens do Docker que estão atualmente em sua máquina local.

   ```
   docker images
   ```

1. No resultado, localize o nome (nome do repositório) e a tag da imagem do contêiner que você deseja enviar para o seu serviço de contêiner. Anote isso pois será necessário na próxima etapa.  
![\[Imagens de contêiner do Docker em uma máquina local\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-container-service-docker-images.png)

1. Insira o comando a seguir para enviar a imagem de contêiner da sua máquina local para o serviço de contêiner.

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

   No comando, substitua:
   + *<Region>*com a região da AWS na qual seu serviço de contêiner foi criado.
   + *<ContainerServiceName>*com o nome do seu serviço de contêiner.
   + *<ContainerImageLabel>*com a etiqueta que você deseja dar à imagem do contêiner quando ela for armazenada no serviço de contêiner. Especifique um rótulo descritivo que você pode usar para rastrear as diferentes versões de suas imagens de contêiner registradas.

     O rótulo fará parte do nome da imagem do contêiner gerado pelo seu serviço de contêiner. Por exemplo, se o nome do serviço de contêiner for `container-service-1`, o rótulo de imagem do contêiner é `mystaticsite`, e esta é a primeira versão da imagem de contêiner que você está enviando, então o nome da imagem gerado pelo seu serviço de contêiner será `:container-service-1.mystaticsite.1`.
   + *<LocalContainerImageName>*com o nome da imagem do contêiner que você deseja enviar para o serviço de contêiner. Você obteve o nome da imagem do contêiner na etapa anterior deste procedimento.
   + *<ImageTag>*com a tag da imagem do contêiner que você deseja enviar para o serviço de contêiner. Você obteve a tag de imagem de contêiner na etapa anterior deste procedimento.

   Exemplo:

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

   Você verá um resultado semelhante ao exemplo a seguir, que confirma que sua imagem de contêiner foi enviada para seu serviço de contêiner.  
![\[Imagem de contêiner Docker enviada para um serviço de contêiner Lightsail\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-container-service-pushed-image.png)

   Consulte a seção [Exibir imagens de contêiner armazenadas em seu serviço de contêiner](#view-pushed-container-images) a seguir neste guia para exibir a imagem do contêiner enviada em seu serviço de contêiner no console Lightsail.

## Exibir imagens de contêiner armazenadas em seu serviço de contêiner
<a name="view-pushed-container-images"></a>

Conclua o procedimento a seguir para exibir imagens de contêiner que foram enviadas e estão sendo armazenadas no seu serviço de contêiner.

1. Faça login no console do [Lightsail](https://lightsail.aws.amazon.com/).

1. No painel de navegação esquerdo, escolha **Contêineres**.

1. Escolha o nome do serviço de contêiner do qual deseja visualizar as imagens de contêiner armazenadas.

1. Na página de gerenciamento do serviço de contêiner, escolha a guia **Imagens**.
**nota**  
A guia **Imagens** não será exibida se você não tiver enviado imagens para seu serviço de contêiner. Para exibir a guia de imagens do seu serviço de contêiner, você deve primeiro enviar imagens de contêiner para o seu serviço.

   A página **Imagens** lista as imagens de contêiner que foram enviadas para o seu serviço de contêiner e que estão sendo armazenadas no seu serviço. As imagens de contêiner que estão sendo usadas em uma implantação atual não podem ser excluídas e são listadas com um ícone de exclusão cinza.  
![\[A página de imagens armazenadas do console Lightsail\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-container-services-stored-images-page.png)

   Você pode criar implantações usando imagens de contêineres armazenadas no seu serviço. Para obter mais informações, consulte Criação e gerenciamento de implantações para os seus serviços de contêiner do Amazon Lightsail.

## Excluir imagens de contêiner armazenadas em seu serviço de contêiner
<a name="delete-stored-container-images"></a>

Conclua o procedimento a seguir para excluir imagens de contêiner que foram enviadas e estão sendo armazenadas no seu serviço de contêiner.

1. Faça login no console do [Lightsail](https://lightsail.aws.amazon.com/).

1. No painel de navegação esquerdo, escolha **Contêineres**.

1. Escolha o nome do serviço de contêiner do qual você deseja visualizar a implantação atual.

1. Na página de gerenciamento do serviço de contêiner, escolha a guia **Imagens**.
**nota**  
A guia **Imagens** não será exibida se você não tiver enviado imagens para seu serviço de contêiner. Para exibir a guia de imagens do seu serviço de contêiner, você deve primeiro enviar imagens de contêiner para o seu serviço.

1. Localize a imagem do contêiner que você deseja excluir e escolha o ícone excluir (lixeira).
**nota**  
As imagens de contêiner que estão sendo usadas em uma implantação atual não podem ser excluídas e seus ícones de exclusão estão acinzentados.

1. No painel de confirmação exibido, confirme que você deseja excluir permanentemente a imagem armazenada escolhendo **Sim, excluir**.

   Sua imagem de contêiner armazenada é imediatamente excluída do seu serviço de contêiner.

# Instale o Docker e o AWS CLI plug-in Lightsail Control para contêineres
<a name="amazon-lightsail-install-software"></a>

Você pode usar o console do Amazon Lightsail para criar seus serviços de contêiner Lightsail e criar implantações usando imagens de contêiner de um registro público on-line, como o Amazon ECR Public Gallery. Para criar suas próprias imagens de contêiner e enviá-las para seu serviço de contêiner, é necessário instalar o seguinte software adicional no mesmo computador no qual planeja criar suas imagens de contêiner:
+ **Docker** — Execute, teste e crie suas próprias imagens de contêiner que você pode usar com seu serviço de contêiner Lightsail.
+ **AWS Command Line Interface (AWS CLI)** — Especifique os parâmetros das imagens de contêiner que você cria e, em seguida, envie-as para o serviço de contêiner Lightsail. As versões 2.1.1 e posteriores funcionarão com o plug-in Lightsail Control.
+ **Plugin Lightsail Control (lightsailctl)** — permite que AWS CLI o acesse as imagens do contêiner que estão na máquina local.

As seções a seguir deste guia descrevem aonde ir para baixar esses pacotes de software e como instalá-los. Para obter mais informações sobre serviços de contêiner, consulte [Serviços de contêiner](amazon-lightsail-container-services.md).

**Índice**
+ [Instalar o Docker](#install-software-docker)
+ [Instale o AWS CLI](#install-software-aws-cli)
+ [Instale o plug-in Lightsail Control](#install-software-lightsailctl)
  + [Instalar o plugin lightsailctl no Windows](#install-lightsailctl-on-windows)
  + [Instalar o plugin lightsailctl no macOS](#install-lightsailctl-on-macos)
  + [Instalar o plugin lightsailctl no Linux](#install-lightsailctl-on-linux)

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

Docker é uma tecnologia que permite criar, executar, testar e implantar aplicações distribuídas que são baseadas em contêineres do Linux. Você deve instalar e usar o software Docker se quiser criar suas próprias imagens de contêiner que possam ser usadas com o serviço de contêiner Lightsail. Para obter mais informações, consulte [Criar imagens de contêiner para seus serviços de contêiner do Lightsail](amazon-lightsail-creating-container-images.md).

O Docker está disponível em muitos sistemas operacionais diferentes, incluindo a maioria das distribuições modernas do Linux, como o Ubuntu e até no MacOS e no Windows. Para obter mais informações sobre como instalar o Docker no seu sistema operacional, consulte o [Guia de instalação do Docker](https://docs.docker.com/engine/installation/#installation).

**nota**  
Sempre instale a versão mais recente do Docker. Não é garantido que as versões mais antigas do Docker funcionem com o AWS CLI plug-in Lightsail Control (lightsailctl) descrito posteriormente neste guia. 

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

 AWS CLI É uma ferramenta de código aberto que permite que você interaja com AWS serviços, como o Lightsail, usando comandos em seu shell de linha de comando. Você deve instalar e usar o AWS CLI para enviar suas imagens de contêiner, criadas em sua máquina local, para o serviço de contêiner Lightsail.

O AWS CLI está disponível nas seguintes versões:
+ **Versão 2.x**: a versão atual disponível para o público da AWS CLI. Essa é a versão principal mais recente do AWS CLI e oferece suporte a todos os recursos mais recentes, incluindo a capacidade de enviar imagens de contêiner para seus serviços de contêiner do Lightsail. As versões 2.1.1 e posteriores funcionarão com o plug-in Lightsail Control.
+ **Versão 1.x** — A versão anterior do AWS CLI que está disponível para compatibilidade com versões anteriores. Essa versão não suporta a capacidade de enviar suas imagens de contêiner para os serviços de contêiner do Lightsail. Portanto, você deve instalar a AWS CLI versão 2 em vez disso.

A AWS CLI versão 2 está disponível para sistemas operacionais Linux, macOS e Windows. Para obter instruções sobre como instalar o AWS CLI nesses sistemas operacionais, consulte [Instalando a AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) no *Guia do AWS CLI usuário*.

## Instale o plug-in Lightsail Control
<a name="install-software-lightsailctl"></a>

O plug-in Lightsail Control (lightsailctl) é um aplicativo leve que permite acessar AWS CLI as imagens de contêiner que você criou em sua máquina local. Ele permite que você envie imagens de contêiner para seu serviço de contêiner Lightsail, para que você possa implantá-las em seu serviço.

**Requisitos do sistema**
+ Um sistema operacional Windows, macOS ou Linux com versões de 64 bits.
+ AWS CLI a versão 2 deve ser instalada em sua máquina local para usar o plug-in lightsailctl. Para obter mais informações, consulte a seção [Instalar a AWS CLI](#install-software-aws-cli) deste guia.

**Usar a versão mais recente do plugin lightsailctl**

O plugin é atualizado ocasionalmente com funcionalidades aprimoradas. Cada vez que você usa o plugin lightsailctl, ele executa uma verificação para confirmar que você está usando a versão mais recente. Se ele descobrir que uma nova versão está disponível, solicitará atualização para a versão mais recente para aproveitar os recursos mais recentes. Quando uma versão atualizada for lançada, você deverá repetir o processo de instalação para instalar a versão mais recente do plugin lightsailctl.

A tabela a seguir lista todas as versões do plugin lightsailctl, bem como os recursos e aprimoramentos incluídos em cada versão.
+ **v1.0.0 (lançado em 12 de novembro de 2020)** — A versão inicial adiciona funcionalidade à AWS CLI versão 2 para enviar imagens de contêiner para um serviço de contêiner do Lightsail.

### Instalar o plugin lightsailctl no Windows
<a name="install-lightsailctl-on-windows"></a>

Conclua o procedimento a seguir para instalar um plugin lightsailctl no Windows.

1. Baixe o executável no seguinte URL e salve-o no diretório do `C:\Temp\lightsailctl\`.

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

1. Escolha o botão **Iniciar** do Windows e, em seguida, busque por `cmd`.

1. Nos resultados de pesquisa, clique com o botão direito do mouse em **Prompt de Comando** e escolha **Executar como administrador**.  
![\[Executar o Prompt Run Command como administrador\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/lightsailctl-cmd-run-as-administrator.png)
**nota**  
Talvez você veja um prompt perguntando se você deseja permitir que o Prompt de Comando faça alterações no seu dispositivo. É necessário escolher **Sim** para continuar com a instalação.

1. Insira o comando a seguir para definir uma variável de ambiente de caminho que aponte para o diretório `C:\Temp\lightsailctl\` onde você salvou o plugin lightsailctl.

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

   Será apresentado um resultado semelhante ao seguinte exemplo:  
![\[Resposta da linha de comando ao comando setx\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/lighstailctl-setx-command.png)

O comando `setx` truncará acima de 1024 caracteres. Use o procedimento a seguir para definir manualmente a variável de ambiente do caminho, caso você já tenha múltiplas variáveis definidas no PATH. 

1. No menu **Start** (Iniciar), abra **Control Panel** (Painel de controle).

1. Escolha **System and Security** (Sistema e Segurança) e **System** (Sistema).

1. Escolha **Configurações de sistema avançadas**.

1. Na guia **Advanced** (Avançado) da caixa de diálogo **System Properties** (Propriedades do sistema), escolha **Environment Variables** (Variáveis de ambiente).

1. Na caixa **System Variables** (Variáveis do sistema) da caixa de diálogo **Environment Variables** (Variáveis de ambiente), selecione **Path** (Caminho).

1. Escolha o botão **Edit** (Editar) localizado abaixo da caixa **System Variables** (Variáveis do sistema).  
![\[Variáveis do sistema Windows\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/lightsail-windows-system-variables.png)

1. Escolha **New** (Novo) e insira o seguinte caminho: `C:\Temp\lightsailctl\`  
![\[Variáveis de ambiente do Windows\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/lightsail-windows-edit-env-variable.png)

1. Escolha **OK** em três caixas de diálogo sucessivas e feche a caixa de diálogo **System** (Sistema).

Agora você está pronto para usar o AWS Command Line Interface (AWS CLI) para enviar imagens de contêiner para o serviço de contêiner do Lightsail. Para obter mais informações, consulte [Push and manage container images](amazon-lightsail-pushing-container-images.md).

### Instalar o plugin lightsailctl no macOS
<a name="install-lightsailctl-on-macos"></a>

Conclua um dos procedimentos a seguir para fazer download e instalar um plugin lightsailctl no macOS.

**Download e instalação Homebrew**

1. Abra uma janela do terminal.

1. Digite o seguinte comando para fazer download e instalar o plugin lightsailctl.

   ```
   brew install aws/tap/lightsailctl
   ```
**nota**  
Para obter mais informações sobre Homebrew, consulte o site [Homebrew](https://brew.sh/).

**Download e instalação manuais**

1. Abra uma janela do terminal.

1. Insira o seguinte comando para fazer download do plugin lightsailctl e o copie para a pasta bin.

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

1. Insira o comando a seguir para tornar o plugin executável.

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

1. Insira o comando a seguir para limpar os atributos estendidos do plugin.

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

Agora você está pronto para usar o para enviar imagens de contêiner AWS CLI para o serviço de contêiner Lightsail. Para obter mais informações, consulte [Push and manage container images](amazon-lightsail-pushing-container-images.md).

### Instalar o plugin lightsailctl no Linux
<a name="install-lightsailctl-on-linux"></a>

Conclua o procedimento a seguir para instalar o plug-in de serviços de contêiner Lightsail no Linux.

1. Abra uma janela do terminal.

1. Digite o seguinte comando para fazer download do plugin lightsailctl.
   + Para a versão da arquitetura de 64 bits AMD do plugin:

     ```
     curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/linux-amd64/lightsailctl" -o "/usr/local/bin/lightsailctl"
     ```
   + Para a versão da arquitetura de 64 bits ARM do plugin:

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

1. Insira o comando a seguir para tornar o plugin executável.

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

   Agora você está pronto para usar o para enviar imagens de contêiner AWS CLI para o serviço de contêiner Lightsail. Para obter mais informações, consulte [Push and manage container images](amazon-lightsail-pushing-container-images.md).

# Conceda aos serviços de contêiner Lightsail acesso aos repositórios privados do Amazon ECR
<a name="amazon-lightsail-container-service-ecr-private-repo-access"></a>

O Amazon Elastic Container Registry (Amazon ECR) é AWS um serviço gerenciado de registro de imagens de contêineres que oferece suporte a repositórios privados com permissões baseadas em recursos usando (IAM). AWS Identity and Access Management Você pode dar aos seus serviços de contêineres do Amazon Lightsail acesso aos seus repositórios privados do Amazon ECR. Região da AWS Em seguida, você pode implantar imagens do seu repositório privado para seus serviços de contêiner.

Você pode gerenciar o acesso aos serviços de contêineres do Lightsail e aos repositórios privados do Amazon ECR usando o console do Lightsail ou o (). AWS Command Line Interface AWS CLI No entanto, recomendamos que você use o console do Lightsail porque ele simplifica o processo.

Para obter mais informações sobre serviços de contêiner, consulte [Serviços de contêiner](amazon-lightsail-container-services.md). Para obter mais informações sobre o Amazon ECR, consulte o [Guia do usuário da Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html).

**Índice**
+ [Permissões obrigatórias](#ecr-private-repos-permissions)
+ [Use o console do Lightsail para gerenciar o acesso a repositórios privados](#ecr-private-repo-access-lightsail-console)
+ [Use o AWS CLI para gerenciar o acesso a repositórios privados](#ecr-private-repo-access-cli)
  + [Ativar ou desativar o perfil do IAM do extrator de imagem do Amazon ECR](#activate-ecr-puller-role)
  + [Determinar se o repositório privado do Amazon ECR tem uma instrução de política](#identify-ecr-repo-policy-statement)
    + [Adicionar uma política a um repositório privado que não tenha uma declaração de política](#ecr-private-repo-add-policy-no-policy)
    + [Adicionar uma política a um repositório privado que tenha uma declaração de política](#ecr-private-repo-add-policy-existing-policy)

## Permissões obrigatórias
<a name="ecr-private-repos-permissions"></a>

O usuário que gerenciará o acesso dos serviços de contêineres do Lightsail aos repositórios privados do Amazon ECR deve ter uma das seguintes políticas de permissões no IAM. Para obter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do AWS Identity and Access Management *.

**Conceder acesso a qualquer repositório privado do Amazon ECR**

A seguinte política de permissões concede permissão para um usuário configurar o acesso a qualquer repositório privado do 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/*"
        }
    ]
}
```

------

Na política, *AwsAccountId* substitua pelo número de identificação AWS da sua conta.

**Conceder acesso a um repositório privado específico do Amazon ECR**

A seguinte política de permissões concede permissão para um usuário configurar o acesso a um repositório privado específico do Amazon ECR em uma Região da AWS específica.

Na política, substitua o seguinte exemplo de texto pelo seu próprio texto:
+ *AwsRegion*— O Região da AWS código (por exemplo,`us-east-1`) do repositório privado. Seu serviço de contêiner do Lightsail deve estar nos Região da AWS mesmos repositórios privados que você deseja acessar.
+ *AwsAccountId*— O número de identificação da sua AWS conta.
+ *RepositoryName*— O nome do repositório privado para o qual você deseja gerenciar o acesso.

Veja a seguir um exemplo da política de permissões preenchida com valores de exemplo.

------
#### [ 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"
        }
    ]
}
```

------

## Use o console do Lightsail para gerenciar o acesso a repositórios privados
<a name="ecr-private-repo-access-lightsail-console"></a>

Conclua o procedimento a seguir para usar o console do Lightsail para gerenciar o acesso de um serviço de contêiner do Lightsail a um repositório privado do Amazon ECR.

1. Faça login no console do [Lightsail](https://lightsail.aws.amazon.com/).

1. No painel de navegação esquerdo, escolha **Contêineres**.

1. Escolha o nome do serviço de contêiner para o qual você deseja configurar o acesso a um repositório privado do Amazon ECR.  
![\[Serviço de contêiner no console Lightsail\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-card.png)

1. Selecione a guia **Images** (Imagens).  
![\[Aba Imagens na página de gerenciamento de serviços de contêineres do console Lightsail\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-images-tab.png)

1. Escolha **Adicionar repositório** para conceder ao serviço de contêiner acesso a um repositório privado do Amazon ECR.
**nota**  
Escolha **Remover** para remover o acesso do serviço de contêiner de um repositório privado do Amazon ECR adicionado anteriormente.  
![\[Seção de repositórios privados do Amazon ECR da guia Imagens\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-ecr-repos-section.png)

1. Na lista suspensa exibida, selecione o repositório privado que gostaria de acessar e escolha **Add** (Adicionar).  
![\[Seleção de menu suspenso de repositórios privados do Amazon ECR\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-ecr-repos-selection.png)

   O Lightsail leva alguns minutos para ativar a função IAM do Amazon ECR Image Puller para seu serviço de contêiner, que inclui um Amazon Resource Name (ARN) principal. Em seguida, o Lightsail adiciona automaticamente o ARN principal da função do IAM à política de permissões do repositório privado do Amazon ECR que você selecionou. Isso permite que o serviço de contêiner tenha acesso ao repositório privado e às imagens. Não feche a janela do navegador até que o modal exibido indique que o processo foi concluído e que você pode escolher **Continue** (Continuar).  
![\[Modal confirmando que as permissões estão sendo adicionadas ao repositório privado do Amazon ECR\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-ecr-repos-confirmation-modal.png)

1. Selecione **Continue** (Continuar) quando a ativação for concluída.

   Após o repositório privado do Amazon ECR selecionado ser adicionado, ele será listado na seção **Repositórios privados do Amazon ECR** da página. A página inclui instruções sobre como implantar uma imagem do repositório privado em seu serviço de contêiner Lightsail. Para usar uma imagem do seu repositório privado, especifique o formato de URI exibido na página como o lavor **Image** ao criar sua implantação do serviço de contêiner. No URI que você especificar, substitua o exemplo *\$1image tag\$1* pela tag da imagem que você deseja implantar. Para obter mais informações, consulte [Create and manage container service deployments](amazon-lightsail-container-services-deployments.md).  
![\[Próximas etapas após a adição de um repositório privado do Amazon ECR\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/container-service-ecr-repos-next-steps.png)

## Use o AWS CLI para gerenciar o acesso a repositórios privados
<a name="ecr-private-repo-access-cli"></a>

Gerenciar o acesso de um serviço de contêiner do Lightsail a um repositório privado do Amazon ECR usando AWS Command Line Interface o AWS CLI() requer as seguintes etapas:

**Importante**  
Recomendamos que você use o console do Lightsail para gerenciar o acesso de um serviço de contêiner do Lightsail a um repositório privado do Amazon ECR, pois isso simplifica o processo. Para obter mais informações, consulte [Usar o console do Lightsail para gerenciar o acesso a repositórios privados](#ecr-private-repo-access-lightsail-console), no início deste guia.

1. **Ative ou desative a função IAM do extrator de imagens do Amazon ECR — Use o comando AWS CLI `update-container-service` para que o Lightsail ative ou desative a função IAM** do extrator de imagens do Amazon ECR. Um nome do recurso da Amazon (ARN) da entidade principal é criado para o perfil do IAM do extrator de imagem do Amazon ECR ao ativá-lo. Para obter mais informações, consulte a seção [Ativar ou desativar o perfil do IAM do extrator de imagem do Amazon ECR](#activate-ecr-puller-role) deste guia.

1. **Determinar se o repositório privado do Amazon ECR tem uma instrução de política**: depois de ativar o perfil do IAM do extrator de imagem do Amazon ECR, você precisa determinar se o repositório privado do Amazon ECR que deseja acessar com o serviço de contêiner tem uma instrução de política existente. Para obter mais informações, consulte [Determinar se o repositório privado do Amazon ECR tem uma instrução de política](#identify-ecr-repo-policy-statement) mais adiante neste guia. 

   Você adiciona o ARN da entidade principal do perfil do IAM ao repositório usando um dos seguintes métodos, dependendo se o repositório tem ou não uma declaração de política existente:

   1. **Adicione uma política a um repositório privado que não tenha uma declaração de política** — Use o AWS CLI `set-repository-policy` comando do Amazon ECR para adicionar o ARN principal da função de extração de imagens do Amazon ECR para seu serviço de contêiner a um repositório privado que tenha uma política existente. Para obter mais informações, consulte [Adicionar uma política a um repositório privado que não tenha uma declaração de política](#ecr-private-repo-add-policy-no-policy) mais adiante neste guia.

   1. **Adicione uma política a um repositório privado que tenha uma declaração de política** — Use o AWS CLI `set-repository-policy` comando do Amazon ECR para adicionar a função de extração de imagens do Amazon ECR do seu serviço de contêiner a um repositório privado que não tenha uma política existente. Para obter mais informações, consulte [Adicionar uma política a um repositório privado que tenha uma declaração de política](#ecr-private-repo-add-policy-existing-policy) mais adiante neste guia.

### Ativar ou desativar o perfil do IAM do extrator de imagem do Amazon ECR
<a name="activate-ecr-puller-role"></a>

Conclua o procedimento a seguir para ativar ou desativar a função IAM do Amazon ECR Image Puller para seu serviço de contêiner Lightsail. Você pode ativar ou desativar a função IAM do Amazon ECR Image Puller usando o comando AWS CLI `update-container-service` para Lightsail. Para obter mais informações, consulte [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/lightsail/update-container-service.html) na *Referência de comandos da AWS CLI *.

**nota**  
Você deve instalar AWS CLI e configurá-lo para o Lightsail antes de continuar com esse procedimento. Para obter mais informações, consulte [Configurar o AWS CLI para trabalhar com o Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Abra um prompt de comando ou uma janela de terminal.

1. Insira o comando a seguir para atualizar um serviço de contêiner e ativar ou desativar o perfil do IAM do extrator de imagem do Amazon ECR.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *ContainerServiceName*— O nome do serviço de contêiner para o qual ativar ou desativar a função IAM do extrator de imagens do Amazon ECR.
   + *RoleActivationState*— O estado de ativação da função IAM do extrator de imagens do Amazon ECR. Especifique `true` para ativar o perfil ou `false` para desativá-lo.
   + *AwsRegionCode*— O Região da AWS código do serviço de contêiner (por exemplo,`us-east-1`).

   Exemplos:
   + Para ativar o perfil do IAM do extrator de imagem do Amazon ECR:

     ```
     aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
     ```
   + Para desativar o perfil do IAM do extrator de imagem do Amazon ECR:

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

1. Se você:
   + **Ativou o perfil do extrator de imagem do Amazon ECR**: aguarde pelo menos 30 segundos após obter a resposta anterior. Em seguida, execute a próxima etapa para obter o ARN da entidade principal do perfil do IAM do extrator de imagem do Amazon ECR para seu serviço de contêiner.
   + **Desativou o perfil do extrator de imagem do Amazon ECR**: se tiver adicionado anteriormente o ARN da entidade principal do perfil do IAM do extrator de imagem do Amazon ECR à política de permissões do seu repositório privado do Amazon ECR, você deve remover essa política de permissões do repositório. Para obter mais informações, consulte [Excluir uma instrução de política de repositório privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/delete-repository-policy.html) no *Guia do usuário do Amazon ECR*.

1. Insira o seguinte comando para obter o ARN da entidade principal do perfil do IAM do extrator de imagem do Amazon ECR para seu serviço de contêiner.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *ContainerServiceName*— O nome do seu serviço de contêiner para o qual obter o ARN principal da função IAM do extrator de imagens do Amazon ECR.
   + *AwsRegionCode*— O Região da AWS código do serviço de contêiner (por exemplo,`us-east-1`).

   Exemplo:

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

   Procure o ARN da entidade principal do perfil do IAM do extrator de imagem do ECR na resposta. Se houver uma função listada, copie ou anote o nome da função. Você precisará desse nome para a próxima seção deste guia. Em seguida, é necessário determinar se há uma instrução de política existente no repositório privado do Amazon ECR que você deseja acessar com seu serviço de contêiner. Siga para a seção [Determinar se o repositório privado do Amazon ECR tem uma instrução de política](#identify-ecr-repo-policy-statement) deste guia.

### Determinar se o repositório privado do Amazon ECR tem uma instrução de política
<a name="identify-ecr-repo-policy-statement"></a>

Siga o procedimento abaixo para determinar se o repositório privado do Amazon ECR tem uma instrução de política. Você pode usar o AWS CLI `get-repository-policy` comando para o Amazon ECR. Para obter mais informações, consulte [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-repository-policy.html) na *Referência de comandos da AWS CLI *.

**nota**  
Você deve instalar AWS CLI e configurá-lo para o Amazon ECR antes de continuar com esse procedimento. Para obter mais informações, consulte [Configuração com o Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) no *Guia do usuário do Amazon ECR*.

1. Abra um prompt de comando ou uma janela de terminal.

1. Insira o comando a seguir para obter a declaração de política de um repositório privado específico.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *RepositoryName*— O nome do repositório privado para o qual você deseja configurar o acesso a um serviço de contêiner do Lightsail.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).

   Exemplo:

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

   Você deverá ver uma das seguintes respostas:
   + **RepositoryPolicyNotFoundException**— Seu repositório privado não tem uma declaração de política. Se o repositório não tiver uma declaração de política, siga as etapas na seção [Adicionar uma política a um repositório privado que não tenha uma declaração de política](#ecr-private-repo-add-policy-no-policy) mais adiante neste guia.  
![\[Resposta ao get-repository-policy comando para um repositório privado que não tem uma declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-no-policy-statement.png)
   + **A repository policy was found** (Uma política de repositório foi encontrada): seu repositório privado tem uma declaração de política e é exibido na resposta de sua solicitação. Se o repositório tiver uma declaração de política, copie a política existente e siga as etapas na seção [Adicionar uma política a um repositório privado que tenha uma declaração de política](#ecr-private-repo-add-policy-existing-policy) mais adiante neste guia.  
![\[Resposta ao get-repository-policy comando para um repositório privado que tem uma declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-existing-policy-statement.png)

### Adicionar uma política a um repositório privado que não tenha uma declaração de política
<a name="ecr-private-repo-add-policy-no-policy"></a>

Realize o procedimento a seguir para adicionar uma política a um repositório privado do Amazon ECR que não tenha uma instrução de política. A política que você adiciona deve incluir o ARN principal da função IAM do extrator de imagens do Amazon ECR do seu serviço de contêiner Lightsail. Isso concede acesso para que o serviço de contêiner implante imagens diretamente do repositório privado.

**Importante**  
O Lightsail adiciona automaticamente a função de extração de imagens do Amazon ECR aos seus repositórios privados do Amazon ECR quando você usa o console do Lightsail para configurar o acesso. Nesse caso, não é necessário adicionar manualmente o perfil de extrator de imagem do Amazon ECR aos repositórios privados usando o procedimento desta seção. Para obter mais informações, consulte [Usar o console do Lightsail para gerenciar o acesso a repositórios privados](#ecr-private-repo-access-lightsail-console), no início deste guia.

Você pode adicionar uma política a um repositório privado usando a AWS CLI. Para isso, crie um arquivo JSON que contenha a política e referencie esse arquivo com o comando `set-repository-policy` para o Amazon ECR. Para obter mais informações, consulte [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) na *Referência de comandos da AWS CLI *.

**nota**  
Você deve instalar AWS CLI e configurá-lo para o Amazon ECR antes de continuar com esse procedimento. Para obter mais informações, consulte [Configuração com o Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) no *Guia do usuário do Amazon ECR*.

1. Abra um editor de texto e cole a seguinte declaração de política em um novo arquivo de texto.

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

****  

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

------

   No texto, *IamRolePrincipalArn* substitua pelo ARN principal da função IAM do extrator de imagens do Amazon ECR do seu serviço de contêiner que você obteve anteriormente neste guia.

1. Salve o arquivo como `ecr-policy.json` em um local acessível em seu computador (por exemplo, `C:\Temp\ecr-policy.json` no Windows ou `/tmp/ecr-policy.json` no macOS ou Linux).

1. Anote o local do caminho do arquivo `ecr-policy.json` criado. Você o especificará em um comando posteriormente neste procedimento.

1. Abra um prompt de comando ou uma janela de terminal.

1. Insira o comando a seguir para definir a declaração de política do repositório privado que você deseja acessar com seu serviço de contêiner.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *RepositoryName*— O nome do repositório privado ao qual você deseja adicionar a política.
   + *path/to/*— O caminho para o `ecr-policy.json` arquivo em seu computador que você criou anteriormente neste guia.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).

   Exemplos:
   + No Windows:

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

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

   Agora seu serviço de contêiner pode acessar o repositório privado e as imagens. Para usar uma imagem do seu repositório, especifique o seguinte URI como o valor **Image** (Imagem) para a implantação do serviço de contêiner. No URI, substitua o exemplo *tag* pela tag da imagem que você deseja implantar. Para obter mais informações, consulte [Create and manage container service deployments](amazon-lightsail-container-services-deployments.md).

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

   No URI, substitua o seguinte exemplo de texto pelo seu próprio texto:
   + *AwsAccountId*— O número de identificação da sua AWS conta.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).
   + *RepositoryName*— O nome do repositório privado a partir do qual implantar uma imagem de contêiner.
   + *ImageTag*— A tag da imagem do contêiner do repositório privado a ser implantada em seu serviço de contêiner.

   Exemplo:

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

### Adicionar uma política a um repositório privado que tenha uma declaração de política
<a name="ecr-private-repo-add-policy-existing-policy"></a>

Realize o procedimento a seguir para adicionar uma política a um repositório privado do Amazon ECR que tenha uma instrução de política. A política que você adiciona deve incluir a política existente e uma nova política que contenha o ARN principal da função IAM do Amazon ECR Image Puller do seu serviço de contêiner Lightsail. Isso mantém as permissões existentes em seu repositório privado enquanto concede acesso ao serviço de contêiner para implantar imagens diretamente do repositório privado.

**Importante**  
O Lightsail adiciona automaticamente a função de extração de imagens do Amazon ECR aos seus repositórios privados do Amazon ECR quando você usa o console do Lightsail para configurar o acesso. Nesse caso, não é necessário adicionar manualmente o perfil de extrator de imagem do Amazon ECR aos repositórios privados usando o procedimento desta seção. Para obter mais informações, consulte [Usar o console do Lightsail para gerenciar o acesso a repositórios privados](#ecr-private-repo-access-lightsail-console), no início deste guia.

Você pode adicionar uma política a um repositório privado usando a AWS CLI. Você faz isso criando um arquivo JSON contendo a política existente e a nova política. Em seguida, referencie o arquivo com o comando `set-repository-policy` para o Amazon ECR. Para obter mais informações, consulte [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) na *Referência de comandos da AWS CLI *.

**nota**  
Você deve instalar AWS CLI e configurá-lo para o Amazon ECR antes de continuar com esse procedimento. Para obter mais informações, consulte [Configuração com o Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) no *Guia do usuário do Amazon ECR*.

1. Abra um prompt de comando ou uma janela de terminal.

1. Insira o comando a seguir para obter a declaração de política de um repositório privado específico.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *RepositoryName*— O nome do repositório privado para o qual você deseja configurar o acesso a um serviço de contêiner do Lightsail.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).

   Exemplo:

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

1. Na resposta, copie a política existente e siga para a próxima etapa.

   Você deve copiar apenas o conteúdo do `policyText` que aparece entre aspas duplas, conforme destacado no exemplo a seguir.  
![\[Resposta ao get-repository-policy comando para um repositório privado que não tem uma declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-existing-policy-copy-statement.png)

1. Abra um editor de texto e cole a política existente do seu repositório privado que você copiou na etapa anterior.

   O resultado será algo semelhante a este exemplo:  
![\[Exemplo de arquivo JSON de declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-existing-policy-statement-json.png)

1. No texto que você colou, substitua `\n` por quebras de linha e exclua o `\` restante.

   O resultado será algo semelhante a este exemplo:  
![\[Exemplo de arquivo JSON editado de declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-edited.png)

1. Cole a seguinte declaração de política no final do arquivo 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. No texto, *IamRolePrincipalArn* substitua pelo ARN principal da função IAM do extrator de imagens do Amazon ECR do seu serviço de contêiner que você obteve anteriormente neste guia.

   O resultado será algo semelhante a este exemplo:  
![\[Exemplo de arquivo JSON completo de declaração de política\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-completed.png)

1. Salve o arquivo como `ecr-policy.json` em um local acessível em seu computador (por exemplo, `C:\Temp\ecr-policy.json` no Windows ou `/tmp/ecr-policy.json` no macOS ou Linux).

1. Anote o local do caminho do arquivo `ecr-policy.json`. Você o especificará em um comando posteriormente neste procedimento.

1. Abra um prompt de comando ou uma janela de terminal.

1. Insira o comando a seguir para definir a declaração de política do repositório privado que você deseja acessar com seu serviço de contêiner.

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

   No comando, substitua o seguinte exemplo de texto pelo seu próprio:
   + *RepositoryName*— O nome do repositório privado ao qual você deseja adicionar a política.
   + *path/to/*— O caminho para o `ecr-policy.json` arquivo em seu computador que você criou anteriormente neste guia.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).

   Exemplos:
   + No Windows:

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

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

   Você verá um resultado semelhante ao seguinte exemplo.  
![\[Resposta ao set-repository-policy comando\]](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/ecr-set-policy-statement-response.png)

   Se executar o comando `get-repository-policy` novamente, você deverá ver a nova declaração adicional de política em seu repositório privado. Agora seu serviço de contêiner pode acessar o repositório privado e as imagens. Para usar uma imagem do seu repositório, especifique o seguinte URI como o valor **Image** (Imagem) para a implantação do serviço de contêiner. No URI, substitua o exemplo *tag* pela tag da imagem que você deseja implantar. Para obter mais informações, consulte [Create and manage container service deployments](amazon-lightsail-container-services-deployments.md).

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

   No URI, substitua o seguinte exemplo de texto pelo seu próprio texto:
   + *AwsAccountId*— O número de identificação da sua AWS conta.
   + *AwsRegionCode*— O Região da AWS código do repositório privado (por exemplo,`us-east-1`).
   + *RepositoryName*— O nome do repositório privado a partir do qual implantar uma imagem de contêiner.
   + *ImageTag*— A tag da imagem do contêiner do repositório privado a ser implantada em seu serviço de contêiner.

   Exemplo:

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