Como desenvolver um contêiner do Docker dentro do CloudShell e enviá-lo a um repositório do Amazon ECR
Este tutorial mostra como definir e criar um contêiner do Docker no AWS CloudShell e enviá-lo a um repositório do Amazon ECR.
Pré-requisitos
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 no Manual 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 Permissões do IAM para enviar por push uma imagem para um repositório privado do Amazon ECR no Manual do Usuário do Amazon ECR.
Procedimento do tutorial
O tutorial a seguir descreve como usar a interface do CloudShell para criar um contêiner do Docker e enviá-lo para um repositório do Amazon ECR.
Crie uma pasta no seu diretório inicial.
mkdir ~/docker-cli-tutorial
Navegue até a pasta que você criou.
cd ~/docker-cli-tutorial
Crie um Dockerfile vazio.
touch Dockerfile
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!" ]
O Dockerfile agora está pronto para ser criado. Crie o contêiner executando o
docker build
. Marque o contêiner com um nome fácil de digitar para uso em comandos futuros.docker build --tag test-container .
Lembre-se de incluir o ponto no final (
.
).Agora você pode testar o contêiner para verificar se ele está funcionando corretamente no AWS CloudShell.
docker container run test-container
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}
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}
nota
Se a variável de ambiente da AWS_REGION não estiver definida no seu CloudShell ou se você quiser interagir com recursos em outras Regiões da AWS, execute o seguinte comando:
AWS_REGION=<your-desired-region>
Marque a imagem com o repositório 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}
Se você encontrar erros ou problemas ao tentar concluir este tutorial, consulte a seção Solução de problemas deste guia para obter ajuda.
Limpeza
Você implantou o contêiner do Docker no repositório do Amazon ECR. Para remover do seu ambiente do AWS CloudShell os arquivos que você criou neste tutorial, 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}