avs-cli로 docker 이미지를 로컬push에서 ECR로 이동

5245 단어 AWSECStech
맥으로 돌아가고 있어요.
aws-Coli 명령은 다음과 같습니다.
로컬에 aws-cli가 있는 경우
aws
이동성
aws-cli가 없으면 docker 환경공식 컨테이너을 사용하십시오
docker run --rm -it amazon/aws-cli command
도 이동이 가능하다.
이번에 사용한 aws-cli 버전은 2.1.24입니다.
~ % docker run --rm -it amazon/aws-cli --version
aws-cli/2.1.24 Python/3.7.3 Linux/4.19.121-linuxkit docker/x86_64.amzn.2 prompt/off
도커 이미지를 로컬에서 ECR의 개인 창고로 복사하는 절차는 다음과 같습니다.
  • docker build
  • aws-cli를 통해 ECR에 로그인
  • docker push
  • 참고 자료
    https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-push-ecr-image.html

    docker build


    docker에 표시하는 동시에build로 그림을 만듭니다.
    아래와 같이 aws_account_idregionリポジトリ名 레이블을 추가해야 합니다.
    docker build -t aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app .
    
    예:
    aws_account_id: 1111111111
    region: ap-northeast-1
    push로 만들고 싶은 ECR의 창고 이름:test-image
    경우
    docker build -t 1111111111.dkr.ecr.ap-northeast-1.amazonaws.com/test-image  .
    
    .

    aws-cli를 통해 ECR 로그인

    docker loginpush처의 등록표를 변경할 수 있습니다.
    기본값은 Docker Hub입니다.
    이번에는 ECR push에 로그인해야 하기 때문에 ECR에 로그인해야 합니다.
    https://docs.docker.com/engine/reference/commandline/login/
    사용자 이름 및 암호 로그인을 지정합니다.
    ECR에 로그인하는 사용자 이름과 비밀번호는 무엇입니까?다음은
    https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/registry_auth.html#registry-auth-token
    사용자 이름AWS비밀번호는 인증 영패입니다.
    aws-Coli를 사용하여 이 인증 영패를 획득합니다.
    docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password
    
    이하는 현지.aws/credentialsconfig가 있는 전제 조건이다.
    // credentials
    [default]
    aws_access_key_id=xxxxxxxxxxxxxxxxxxxxxxxxxxx
    aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    // config
    [default]
    region=ap-northeast-1
    output=json
    
    --password-stdin표준 입력을 사용할 수 있는 옵션이 있으므로
    docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password \
      --region <region>
    | docker login \
        --username AWS \
        --password-stdin \
        <aws_account_id>.dkr.ecr.<region>.amazonaws.com
    
    get-login-password에서 얻은 영패 문자열은 docker login의password로 사용할 수 있습니다.
    로그인 성공 을 표시합니다.

    MFA 사용 시


    또 MFA를 사용할 때는 크레덴셜을 통해 직접 로그인할 수 없다.
    Error response from daemon: login attempt to https://111111111.dkr.ecr.ap-northeast-1.amazonaws.com/v2/ failed with status: 400 Bad Request
    
    MFA용 인증 정보를 미리 취득해야 한다.
    https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/
    aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
    
    arn-of-the-mfa-device 부분은 IAM에서 사용자를 선택하고 화면 레이블을 인증하는 MFA 장치의 배정에 적었다.code-from-token 부분은 Authenticator 등의 코드입니다.
    에서 가져온 정보를 사용하여 다음과 같이 파일을 만듭니다.
    # ~/.aws/mfa_credentials
    [default]
    aws_access_key_id = xxxxxxxxxxxxx
    aws_secret_access_key = xxxxxxxxxx
    aws_session_token = cxxxxxxxxxxxxx
    
    환경 변수에서 인증에 사용할 파일을 설정하는 동시에 로그인합니다.
    docker run -e AWS_SHARED_CREDENTIALS_FILE=/root/.aws/mfa_credentials --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password \
      --region <region>
    | docker login \
        --username AWS \
        --password-stdin \
        <aws_account_id>.dkr.ecr.<region>.amazonaws.com
    

    docker push


    http://docs.docker.jp/engine/reference/commandline/push.html
    docker push[옵션] 이름 [:태그]docker push 이후 Docker 이미지를 Docker Hub 또는 레지스트리에 공유할 수 있습니다.
    docker login에 ECR에 로그인한 상태이기 때문에 push를 통해 ECR에 push할 수 있습니다.
    docker push 1111111111.dkr.ecr.ap-northeast-1.amazonaws.com/test-image
    

    좋은 웹페이지 즐겨찾기