패스트캠퍼스 캐시백 챌린지 53일차
Docker Hub Repository와 AWS ECR Repository 이용과 관련된 클립을 수강하는식으로 챌린지를 진행하였다. docker hub는 예전에 설치했었던 docker desktop과 거의 유사한 환경이어서 익숙한편이었고 aws ecr은 다른파트에서도 다루어본적 있는데 command 사용에만 약간 차이가 있었다. Docker Image pull/push에는 어느정도 익숙해진듯하다. 다음 포스팅으로는 이미지 경량화 전략과 Docker demon Debugging에 관련된 내용을 포스팅할 예정이다.
도커허브 저장소 이용
도커의 공식 이미지 저장소로 도커허브가 존재한다.
Docker Hub Container Image Library | App Containerization
We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy
hub.docker.com
도커허브에 로그인 후 Account Settings로 이동한다.
New Access Token을 통해 Access Token을 생성해주자.
Access Permission 정도를 설정해주고 generate를 선택한다.
Username과 access token을 통해 login을 해주면된다.
Login Succeded가 출력되면 정상적으로 docker hub에 로그인이 되었다.
이제 Docker Hub의 repository를 활용해보자!
상단의 Repositories 항목을 선택해준다.
Create Repository를 선택해준다.
Docker hub의 repository name을 설정해주고 visibility는 private으로 설정한다.
CLI를 통해 repository에 push하는 설명하는 내용도 같이 노출되어있다.
docker tag local-image: tagname new-repo:tagname
# example
# docker tag nginx:latest {YOUR_DOCKERHUB_ID}/my-nginx:v1.0.0
다시 docker images를 헤보면 해당 tagging을 완료해준 이미지를 확인할 수 있다.
그 내용을 push해주자.
docker push new-repo:tagname
# example
# docker push {YOUR_DOCKERHUB_ID}/my-nginx:v1.0.0
Dockerhub를 다시 확인해보면 정상적으로 push 된 것을 확인해볼 수 있다.
Private으로 설정해주었기에 access 권한이 주어진 dockerhub 계정으로 로그인이 되어있어야 이미지를 pull을 받을 수 있게된다!
AWS ECR 저장소 이용
Elastic Container Registry 서비스로 접속하여 레포지토리 생성을 선택하여 생성해준다.
생성이 완료되면 레포지토리가 표출된다.
해당 레포지토리를 선택하면 이미지가 비어있는 상태이다. “푸시 명령보기”(”view push commands”)를 선택하여 command를 확인해준다.
dockerhub와 마찬가지로 docker build와 push 명령어를 활용한다. 이때 aws cli를 통해 사용자 인증을 해야하는데, “aws ecr get-ligin-pasasword —region ap-northeast-2” 의 결과값이 username과 password로 넘겨주어 사용자 인증을 하게되는 형식이다.
sudo apt install awscli
aws configure
AWS Access Key ID [None] : [IAM 엑세스 키 ID]
AWS Secret Key [Done] : [IAM 비밀 엑세스 키]
Default region name [None]: ap-northeast-2
# 이후로는 푸시 명령 Command 내용과 동일
# example
# docker tag nginx:latest 474203012395.dkr.ecr.ap-northeast-2.amazonaws.com/my-nginx:v1.0.0
# docker push 474203012395.dkr.ecr.ap-northeast-2.amazonaws.com/my-nginx:v1.0.0
Login Succeeded가 출력되면 성공적으로 로그인 된것이다.
push를 해주고 AWS페이지에서 내용을 확인해보자.
잘 push되었음을 확인할 수 있다! 마찬가지로 인증되지 않은 사용자가 pull시도시 거부되게 된다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.