

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á.

# Construindo um contêiner Docker interno CloudShell e enviando-o para um repositório Amazon ECR
<a name="tutorial-docker-cli"></a>

Este tutorial mostra como definir e criar um contêiner Docker AWS CloudShell e enviá-lo para um repositório Amazon ECR.

## Pré-requisitos
<a name="prerequisites-docker-cli"></a>
+ Você deve ter as permissões necessárias para criar e enviar a um repositório do Amazon ECR. Para obter mais informações sobre repositórios com o Amazon ECR, consulte [Repositórios privados do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) no *Guia do usuário do Amazon ECR*. Para obter mais informações sobre as permissões necessárias para enviar imagens com o Amazon ECR, consulte [Required IAM permissions for pushing an image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push.html#image-push-iam) no *Guia do usuário do Amazon ECR*.

## Procedimento do tutorial
<a name="tutorial-docker-cli-steps"></a>

O tutorial a seguir descreve como usar a CloudShell interface para criar um contêiner Docker e enviá-lo para um repositório Amazon ECR.

1. Crie uma pasta no seu diretório inicial.

   ```
   mkdir ~/docker-cli-tutorial
   ```

1. Navegue até a pasta que você criou.

   ```
   cd ~/docker-cli-tutorial
   ```

1. Crie um Dockerfile vazio.

   ```
   touch Dockerfile
   ```

1. Usando um editor de texto, por exemplo, o `nano Dockerfile`, abra o arquivo e cole o seguinte conteúdo nele.

   ```
   # Dockerfile
   
   # Base this container on the latest Amazon Linux version
   FROM public.ecr.aws/amazonlinux/amazonlinux:latest
   
   # Install the cowsay binary
   RUN dnf install --assumeyes cowsay
   
   # Default entrypoint binary
   ENTRYPOINT [ "cowsay" ]
   
   # Default argument for the cowsay entrypoint
   CMD [ "Hello, World!" ]
   ```

1. O Dockerfile agora está pronto para ser criado. Crie o contêiner executando o `docker build`. Marque o contêiner com um easy-to-type nome para uso em comandos futuros.

   ```
   docker build --tag test-container .
   ```

   Lembre-se de incluir o ponto no final (`.`).  
![\[Imagem do comando criar docker executado dentro do AWS CloudShell.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%201-docker-build.png)

1. Agora você pode testar o contêiner para verificar se ele está funcionando corretamente no AWS CloudShell.

   ```
   docker container run test-container
   ```  
![\[Imagem do comando docker container run dentro AWS CloudShell\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%202-docker-run.png)

1. Agora que há um contêiner do Docker em funcionamento, envie-o a um repositório do Amazon ECR. Ignore essa etapa se tiver um repositório do Amazon ECR. 

   Execute o comando a seguir para criar um repositório do Amazon ECR para este tutorial.

   ```
   ECR_REPO_NAME=docker-tutorial-repo
   aws ecr create-repository --repository-name ${ECR_REPO_NAME}
   ```  
![\[Imagem do comando usado para criar um repositório Amazon ECR dentro AWS CloudShell\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%203-ecr-create-repo%20(redacted).png)

1. Depois de criar o repositório do Amazon ECR, você pode enviar o contêiner do Docker para ele.

   Execute o comando a seguir para obter as credenciais de login do Amazon ECR para o Docker.

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
   ECR_URL=${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
   aws ecr get-login-password | docker login --username AWS --password-stdin ${ECR_URL}
   ```  
![\[Imagem do comando usado para obter as credenciais de login do Amazon ECR para o Docker.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%204-docker-login.png)
**nota**  
Se a variável de **AWS\$1REGION** ambiente não estiver definida na sua CloudShell ou se você quiser interagir com recursos em outra Regiões da AWS, execute o seguinte comando:  

   ```
   AWS_REGION=<your-desired-region>
   ```

1. Marque a imagem com o repositório do Amazon ECR de destino e, em seguida, envie-a para esse repositório.

   ```
   docker tag test-container ${ECR_URL}/${ECR_REPO_NAME}
   docker push ${ECR_URL}/${ECR_REPO_NAME}
   ```  
![\[Imagem do comando usado para marcar a imagem com o repositório do Amazon ECR de destino.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%205-docker-push%20(redacted).png)

   Se você encontrar erros ou problemas ao tentar concluir este tutorial, consulte a seção [Solução de problemas](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) deste guia para obter ajuda.

## Limpeza
<a name="clean-up-docker-cli"></a>

Você implantou o contêiner do Docker no repositório do Amazon ECR. Para remover os arquivos que você criou neste tutorial do seu AWS CloudShell ambiente, execute o comando a seguir.
+ 

  ```
  cd ~
  rm -rf ~/docker-cli-tutorial
  ```
+ Exclua o repositório do Amazon ECR.

  ```
  aws ecr delete-repository --force --repository-name ${ECR_REPO_NAME}
  ```