자습서: 내부에 AWS CloudShell Docker 컨테이너를 구축하여 Amazon ECR 리포지토리로 푸시하기 - AWS CloudShell

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: 내부에 AWS CloudShell Docker 컨테이너를 구축하여 Amazon ECR 리포지토리로 푸시하기

이 자습서에서는 Docker 컨테이너를 정의 및 구축하고 Amazon ECR AWS CloudShell 리포지토리로 푸시하는 방법을 보여줍니다.

사전 조건

  • Amazon ECR 리포지토리를 생성하고 푸시하려면 필요한 권한이 있어야 합니다. Amazon ECR을 사용하는 리포지토리에 대한 자세한 내용은 Amazon ECR 사용 설명서의 Amazon ECR 프라이빗 리포지토리를 참조하십시오. Amazon ECR을 사용하여 이미지를 푸시하는 데 필요한 권한에 대한 자세한 내용은 Amazon ECR 사용 설명서의 이미지 푸시에 필요한 IAM 권한을 참조하십시오.

자습서 절차

다음 자습서에서는 CloudShell 인터페이스를 사용하여 Docker 컨테이너를 구축하고 Amazon ECR 리포지토리로 푸시하는 방법을 간략하게 설명합니다.

  1. 홈 디렉터리에 새 폴더를 생성합니다.

    mkdir ~/docker-cli-tutorial
  2. 생성한 폴더로 이동합니다.

    cd ~/docker-cli-tutorial
  3. 빈 Dockerfile을 생성합니다.

    touch Dockerfile
  4. 예를 nano Dockerfile 들어 텍스트 편집기를 사용하여 파일을 열고 다음 내용을 붙여넣습니다.

    # 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!" ]
  5. 이제 Dockerfile을 빌드할 준비가 되었습니다. 를 실행하여 컨테이너를 빌드합니다. docker build 향후 명령에 사용할 easy-to-type 이름으로 컨테이너에 태그를 지정합니다.

    docker build --tag test-container .

    뒤에 마침표 (.) 를 포함해야 합니다.

    내부에서 실행되는 docker build 명령의 이미지입니다. AWS CloudShell
  6. 이제 컨테이너를 테스트하여 컨테이너가 제대로 실행되고 있는지 확인할 수 있습니다AWS CloudShell.

    docker container run test-container
    내부의 docker 컨테이너 실행 명령 이미지 AWS CloudShell
  7. 이제 작동하는 Docker 컨테이너를 확보했으므로 Amazon ECR 리포지토리로 푸시해야 합니다. 기존 Amazon ECR 리포지토리가 있는 경우 이 단계를 건너뛰어도 됩니다.

    다음 명령을 실행하여 이 자습서를 위한 Amazon ECR 리포지토리를 생성합니다.

    ECR_REPO_NAME=docker-tutorial-repo aws ecr create-repository --repository-name ${ECR_REPO_NAME}
    내부에 Amazon ECR 리포지토리를 생성하는 데 사용되는 명령 이미지 AWS CloudShell
  8. Amazon ECR 리포지토리를 생성한 후 Docker 컨테이너를 해당 리포지토리로 푸시할 수 있습니다.

    다음 명령을 실행하여 Docker용 Amazon ECR 로그인 자격 증명을 가져옵니다.

    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}
    Docker용 Amazon ECR 로그인 자격 증명을 가져오는 데 사용된 명령의 이미지입니다.
  9. 대상 Amazon ECR 리포지토리로 이미지에 태그를 지정한 다음 해당 리포지토리로 푸시합니다.

    docker tag test-container ${ECR_URL}/${ECR_REPO_NAME} docker push ${ECR_URL}/${ECR_REPO_NAME}
    대상 Amazon ECR 리포지토리로 이미지에 태그를 지정하는 데 사용된 명령 이미지입니다.

    이 자습서를 완료하려고 할 때 오류가 발생하거나 문제가 발생하는 경우 이 안내서의 문제 해결 섹션을 참조하십시오.

정리

이제 Docker 컨테이너를 Amazon ECR 리포지토리에 성공적으로 배포했습니다. 이 자습서에서 생성한 파일을 AWS CloudShell 환경에서 제거하려면 다음 명령을 실행합니다.

  • cd ~ rm -rf ~/docker-cli-tutorial
  • Amazon ECR 리포지토리를 삭제합니다.

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