본문으로 건너뛰기

Container Registry를 이용한 이미지 저장 및 사용

카카오클라우드의 Container Registry를 이용하여 컨테이너 이미지를 저장하고 관리합니다.

기본 정보
  • 예상 소요 시간: 20분
  • 권장 운영 체제: macOS
  • 사전 준비 사항

시나리오 소개​

이 튜토리얼은 카카오클라우드의 Container Registry를 사용하여 컨테이너 이미지를 저장하고, 이를 활용하는 기본 절차를 안내합니다. 로컬 환경에서 예제 프로젝트를 Docker 이미지로 빌드하고, Container Registry에 업로드한 후, 이미지 등록 및 다운로드까지의 전 과정을 실습합니다.

주요 내용은 다음과 같습니다.

  • Container Registry 리포지토리 생성
  • 예제 프로젝트의 Docker 이미지 빌드 및 태깅
  • Container Registry에 이미지 업로드 및 pull 테스트

이 시나리오는 컨테이너 기반 애플리케이션을 배포하기 위한 사전 작업으로, 이미지 저장소 구성 방법을 익히는 데 중점을 둡니다.

시작하기 전에​

실습을 원활히 진행하기 위해서는 특정 프로그램이 로컬 환경에 설치되어 있어야 합니다. 만약 필요한 프로그램이 설치되어 있지 않다면, 아래 명령어를 참고하여 설치를 진행해 주세요.

1. Homebrew 설치​

Homebrew는 macOS 환경에서 패키지 설치 및 관리를 돕는 도구입니다. 아래 명령어를 터미널에 입력하여 설치를 진행하세요. 설치 후 brew help 명령어를 실행하여 설치 여부를 확인할 수 있습니다.

brew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Git 설치​

Git은 버전 관리 시스템으로, 실습에 필수적인 도구입니다. Homebrew를 사용해 아래와 같이 설치하세요. 설치 완료 후 git --version 명령어를 입력하여 Git 버전을 확인하세요.

Git 설치
brew install git

3. Docker 설치​

Docker는 컨테이너 기반 가상화를 지원하는 도구로, 실습 환경 설정에 필요합니다. Homebrew의 cask 기능을 사용하여 설치합니다.

Docker 설치
brew install --cask docker
# 설치된 docker desktop을 실행
# provoleged access 요구창이 뜨면 OK 누르고 랩탑 유저 암호 입력
docker help
# 명령어가 잘 뜬다면 설치 완료

시작하기​

Step 1. Container Registry 생성​

Container Registry를 이용하여 컨테이너 이미지를 보관하여 활용할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴에서 리포지토리를 생성할 수 있습니다. 아래 정보를 확인하여 리포지토리를 생성합니다.

    구분리포지토리 설정값
    공개 여부비공개
    리포지토리 이름tutorial
    태그 덮어쓰기가능
    이미지 스캔자동
  2. 생성한 리포지토리가 목록에 표시되는지 확인합니다.

Step 2. 예제 프로젝트 도커 이미지 빌드​

예제 프로젝트 설치​

  1. 예제 프로젝트를 설치할 디렉터리를 생성하고 작업 디렉터리를 생성한 디렉터리로 설정합니다.

    mkdir -p ~/Downloads/kakaocloud-library
    cd ~/Downloads/kakaocloud-library
  2. 그 다음 아래 명령어를 통해 예제 프로젝트를 설치합니다.

    git clone -b kakaocloud-library https://github.com/kakaoenterprise/kakaocloud-tutorials
  3. 작업 디렉터리를 예제 프로젝트 경로로 이동합니다.

    cd kakaocloud-tutorials
  4. 예제 프로젝트 파일을 확인합니다.

    ls

예제 프로젝트 빌드​

  1. 프로젝트를 빌드하기 전에 Docker daemon이 실행 중인지 반드시 확인해야 합니다. 만약 Docker daemon이 실행되지 않은 상태에서 빌드를 시도하면 아래와 같은 오류가 발생할 수 있습니다.

       Cannot connect to the Docker daemon...

    이 경우 Docker Desktop을 실행해야 합니다.

    • 실행 방법 (macOS 기준): Launchpad → Docker 검색 → 실행
    • Docker Desktop이 실행되면 Docker daemon도 자동으로 함께 실행됩니다.
    Docker 실행 환경 확인
    docker info
    에러 예제
    Client:
    Version: ...
    Context: ...
    ...
    ...

    Server:
    ERROR: Cannot connect to the Docker daemon at unix:///Users/kakao_cloud/.docker/run/docker.sock. Is the docker daemon running?
    errors pretty printing info
  2. 서버 프로젝트를 linux/amd64 환경으로 빌드합니다.

    docker build -t kakaocloud-library-server:latest --platform linux/amd64 -f ./server/deploy/Dockerfile ./server
  3. 빌드된 서버 컨테이너 이미지를 카카오클라우드 환경에 맞게 태그를 설정합니다.

    # 서버 이미지 태그 설정
    docker tag kakaocloud-library-server:latest ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-server:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름
  4. 클라이언트 프로젝트를 linux/amd64 환경으로 빌드합니다.

    docker build -t kakaocloud-library-client:latest --platform linux/amd64 -f ./client/deploy/Dockerfile ./client
  5. 빌드된 클라이언트 컨테이너 이미지를 카카오클라우드 환경에 맞게 태그를 설정합니다.

    # 클라이언트 이미지 태그 설정
    docker tag kakaocloud-library-client:latest ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-client:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름

Step 3. 예제 프로젝트 이미지 업로드​

Container Registry 로그인​

  1. 로컬 머신에 사용자 정보를 입력하여 카카오클라우드 Container Registry에 로그인합니다.

    # Container Registry 로그인
    docker login ${PROJECT_NAME}.kr-central-2.kcr.dev \
    --username ${ACCESS_KEY} \
    --password ${ACCESS_SECRET_KEY}
    환경변수설명
    PROJECT_NAME🖌︎카카오클라우드 콘솔의 프로젝트 이름
    ACCESS_KEY🖌︎액세스 키
    ACCESS_SECRET_KEY🖌︎보안 액세스 키
  2. 로그인 결과를 확인합니다.

    # 예제 결과: Login Succeeded

컨테이너 이미지 업로드​

  1. 서버 컨테이너 이미지를 업로드합니다.

    # 서버 이미지 업로드
    docker push ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-server:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름
  2. 클라이언트 컨테이너 이미지를 업로드합니다.

    # 클라이언트 이미지
    docker push ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-client:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름

Step 4. 결과 확인​

  1. 카카오클라우드 콘솔 > Container Registry 메뉴에서 생성한 tutorial 리포지토리에 접속합니다.

  2. 하단 이미지 탭에서 업로드한 이미지가 목록에 표시되는지 확인합니다.

    이미지 이름라벨
    kakaocloud-library-client-
    kakaocloud-library-server-
  3. 업로드된 이미지는 아래 명령어를 통해 다운로드할 수 있습니다. 로컬 머신에 입력하여 이미지를 설치합니다. (M1/M2 기반 Mac 환경에서는 --platform linux/amd64 옵션을 지정해야 합니다.)

    # 서버 이미지
    docker pull --platform linux/amd64 ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-server:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름
    # 클라이언트 이미지
    docker pull --platform linux/amd64 ${PROJECT_NAME}.kr-central-2.kcr.dev/${REPOSITORY_NAME}/kakaocloud-library-server:latest
    환경변수설명
    PROJECT_NAME🖌︎Container Registry를 생성한 카카오클라우드 콘솔의 프로젝트 이름
    REPOSITORY_NAME🖌︎Container Registry에서 생성한 리포지토리의 이름
  4. 다음 명령어를 이용하여 이미지가 설치되었는지 확인합니다.

    Docker 이미지 목록 조회
    docker images