Azure Container Registry에 docker 이미지 push하기

개발자·2022년 9월 1일
0

MSA

목록 보기
4/7
post-custom-banner

Azure Container Registry에 컨테이너 이미지를 push 해보자🌞

시작 전 해야할 것

Azure Container Registry 만들기

Azure Container Registry는 컨테이너 이미지를 위한 프라이빗 레지스트리이다. 프라이빗 컨테이너 레지스트리를 사용하면 애플리케이션 및 사용자 지정 코드를 안전하게 빌드하고 배포할 수 있다. Azure Portal에서 미리 만들어두어야 한다.

Azure CLI 설치

Azure CLI가 설치되지 않았다면 설치해준다. 여기에서 OS 별 설치 방법을 확인할 수 있다.
나는 apt를 사용해 Ubuntu에 설치해줬다. 아래 명령을 실행하면 하나의 명령으로 설치할 수 있다.

$ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

컨테이너 이미지 만들기 or 가져오기

컨테이너 이미지를 만들었다면 pass해도 된다. 하지만 아직 컨테이너 이미지를 만들지 않았다면 도커허브에서 DOCKER OFFICIAL IMAGE를 다운받아서 따라해볼 수 있다.
나는 nginx 컨테이너 이미지를 다운 받았다. nginx를 검색한 후 오른쪽 명령을 실행하면 이미지를 가져올 수 있다.


이미지 push 방법

1. 컨테이너 레지스트리에 로그인

ACR(Azure Container Registry)을 사용하려면 로그인을 해야한다.

$ az login

위의 명령을 입력하면 아래와 같이 로그인할 수 있는 인터넷 창이 뜬다. 로그인 해준다.

그 다음 컨테이너 레지스트리에 로그인 해준다. <acrName>에는 컨테이너 레지스트리의 이름을 입력한다.

$ az acr login --name <acrName>

로그인에 성공했다 😉

2. 컨테이너 이미지 태그 지정

ACR에 컨테이너 이미지를 사용하려면 레지스트리의 로그인 서버 주소를 사용하여 이미지에 태그를 지정해야 한다. 이 태그는 컨테이너 이미지를 이미지 레지스트리에 밀어넣을 때 라우팅에 사용된다.

컨테이너 레지스트리의 로그인 서버 주소를 가져오려면 다음 명령을 입력한다.

$ az acr list --resource-group <리소스그룹명> --query "[].{acrLoginServer:loginServer}" --output table

다음으로 아래 명령을 통해 위에서 가져왔던 nginx 이미지의 REPOSITORYTAG를 확인한다. (다운받은 이미지 목록을 가져오는 명령)

$ docker image ls

REPOSITORY는 nginx, TAG는 latest인 것을 확인할 수 있다.

이제 컨테이너 레지스트리의 로그인 서버 주소를 사용해 로컬 nginx 이미지에 태그를 지정한다.

$ docker tag <기존 이미지 REPOSITORY>:<기존 이미지 Tag> <로그인 서버 주소>/<이미지 REPOSITORY>:<이미지 Tag>

나는 REPOSITORY는 task-nginx, TAG는 v1로 지정해주었다.

다시 docker image ls로 이미지 목록을 확인하면 같은 nginx 이미지에 대해 내가 입력한대로 태그가 추가된 것을 확인할 수 있다.

3. 레지스트리에 이미지 push

빌드 및 태그가 지정된 이미지를 사용하여 해당 이미지를 ACR 인스턴스로 push한다.
2번에서 구한 정보들을 이용해 push 해준다.

$ docker push <로그인 서버 주소>/<이미지 REPOSITORY>:<이미지 Tag>

4. 레지스트리에서 이미지 확인

다음 명령을 통해 ACR 인스턴스로 push된 이미지 목록을 확인할 수 있다. table이 아닌 json, yaml 등 다른 방식으로도 확인 가능하다.

$ az acr repository list --name <acrName> --output table



Ref.

https://docs.microsoft.com/ko-kr/azure/aks/tutorial-kubernetes-prepare-acr?tabs=azure-cli

profile
log.info("공부 기록 블로9")
post-custom-banner

0개의 댓글