docker-compose + AWS ECR(azon Elastic Container Registry) AWS CLI의 다중 계정 관리 정보
4673 단어 docker-compose도커ECRAWS
AWS CLI 계정 관리
로컬
~/.aws/credentials
파일로 관리 여러 번 분할하여 이미지를 푸시해야합니다
※ AWS CLI2가 설치되어 있는 전제
참고:
이 기사에서 많은 것을 알았으므로 인용하겠습니다.
awscli 설정 전환
AWS CLI에서 여러 계정 관리
모치베
회사에서도 AWS 계정을 사용하고 있지만, 개인 개발에서도 ECR에 push하고 싶다. 하지만 push하려고하면 그 회사 계정으로 push 할 수 없습니다! 적인 오류가 나온다.
계정 관리
다음 파일은 이러한 방식으로 두 가지 이상의 계정을 관리합니다.
최종적으로 이 파일이 이하와 같은 형태가 되어 있으면 좋기 때문에 vim로 써도 좋다고 생각한다.
이 기사에서는 다른 방법을 소개하고 있다.
~/.aws/credentials
[default]
aws_access_key_id=***********AI
aws_secret_access_key=**************************hi
region = ap-northeast-1
[profile test-user]
aws_access_key_id = ************HI
aws_secret_access_key = *************************3MA
region=us-west-2
~/.aws/credentials에 새 계정을 등록하는 방법
공식 사이트에 실려 있었기 때문에 그쪽을 기재
참고 : htps : // / cs. 아 ws. 아마존. 이 m/그럼_jp/cぃ/ぁてst/うせrぐいで/cぃーこんふぃぐれーふぃぇs. HTML
$ aws configure
그렇다면 (AWS CLI가 이미 설치되어 있으면) Access Key나 Secret Access Key를 표준 입력으로 요구하므로 IAM을 작성했을 때 표시되는 key를 입력한다.
Default region name, Default output format에 대해서는 임의의 값을.
위 작업이 끝난 후
$ cat ~/.aws/credentials
라든지로 확인해 보면 새로운 정보가 추가되어 있을 것.
키 저장
새롭게 IAM을 작성했을 때는, IAM의 작성 완료 화면에서 aws_access_key_id, aws_secret_access_key의 2개가 발행되어
new_account_credentials.csv
ecr에 push 할 때의 권한
ecr에 push할 때는 각각 개인마다 IAM을 작성하여 ecr에 push할 수 있는 권한을 붙여 push할 수 있도록 한다
푸시 할 수있는 권한은 여기
AmazonEC2ContainerRegistryFullAccess
AmazonEC2ContainerRegistryPowerUser
AmazonEC2ContainerRegistryReadOnly
참고:
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 아마조네 CR / ㅁ st / 우세 r 구이데 / 에cr_ 마나게 d_ 뽀시에 s. HTML
계정 전환
export AWS_DEFAULT_PROFILE=test-user
부터
aws s3 list
야
aws ecr get-login
등 임의의 로그인 명령 등을 실행test-user
는 [default] 등으로 둘러싸인 ~/.aws/credentials
파일의 값을 입력합니다.이곳에서도 할 수있는 것 같습니다.
aws s3 list --profile test-user
docker-compose + ECR
글쎄, 여기는 쉽게.
몰랐기 때문에 기재하지만, Docker image를 ECR에 push할 때는 aws cli를 올바른 계정으로 전환한 후 아래의 커맨드를 실행하면 push할 수 있다.
하지만 docker-compose의 경우 어떻게해야합니까? ?
라고 생각했으므로 조금 조사해 보았지만, 별로 정보 없었다. . . (3분 정도밖에 조사하지 않았지만)
결론
docker-compose의 경우는 단번에 복수의 image를 만들기 때문에 여러 번 push 작업을 할 필요가 있다.
어쩌면 다른 방법이 있을지도 모르기 때문에 알고 계시다면 알려주세요.
그래서 예를 들어
이런 느낌의 환경을 Docker에 올릴 때는 api-server, db-server(Model), mysql의 3개의 image를 docker-compose로 만들 필요가 있다.
이 경우 각 서비스마다 ECR로 리포지토리를 작성하여 각 환경에 push하도록 한다.
조금 귀찮기 때문에 더 좋은 방법, 편한 스크립트라든지 쓰면 좋은 것일까? 라고는 생각하지만 모르겠습니다.
# タグをつける
$ docker tag hello-world:latest aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest
# ECRにpushする
$ docker push aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest
산출:
The push refers to a repository [aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world] (len: 1)
e9ae3c220b23: Pushed
a6785352b25c: Pushed
0998bf8fb9e9: Pushed
0a85502c06c9: Pushed
latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
참고 : htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 아마조네 CR / ㅁ st / 우세 r 굿이 / 껄껄 gs r r dc ぃ. HTML
이상.
Reference
이 문제에 관하여(docker-compose + AWS ECR(azon Elastic Container Registry) AWS CLI의 다중 계정 관리 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Uking/items/9aa680ed446889cc22fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)