이미지 관리
Container Registry 서비스에서 리포지토리에 푸시된 이미지를 관리하는 방법은 다음과 같습니다.
이미지 상세 보기
리포지토리에 Push 된 이미지의 상세 정보를 확인할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
-
리포지토리 메뉴에서 이미지가 있는 리포지토리를 선택합니다.
-
이미지 탭에서 상세 정보를 확인할 이미지를 선택합니다.
-
이미지 상세 페이지에서 정보를 확인합니다.
구분 설명 이미지 URI 이미지 URI 확인 및 복사 기능 제공 기능
- [커맨드 보기] 버튼: 레지스트리 인증 및 이미지 Push, Pull 커맨드를 확인
- [만료기한 변경] 버튼: 만료 기한을 변경세부 정보 탭 이미지 세부 정보 조회 태그 탭 이미지 태그 정보 조회 태그 히스토리 탭 태그 히스토리 조회 사용이력 탭 이미지 사용 이력 조회
이미지 수정
이미지 정보를 수정할 수 있습니다. 이미지 이름은 수정할 수 없으며, 이미지 설명과 라벨만 수정할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 수정할 이미지의 체크박스를 선택합니다.
- 우측에 위치한 [더 보기] 아이콘 > 수정을 선택합니다.
- 이미지 수정에서 정보를 수정하고, [저장] 버튼을 클릭합니다.
이미지 Push/Pull 커맨드 보기(Docker)
도커(Docker)를 통해 이미지를 리포지토리에 Push/Pull 할 수 있는 커맨드를 확인할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 커맨드를 확인할 이미지를 선택합니다.
- 우측 상단에 위치한 [커맨드 보기] 버튼을 클릭합니다.
- 커맨드 보기 팝업창에서 커맨드를 확인합니다.
이미지 만료 기한 변경
이미지의 만료 기한을 변경할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 상세 화면으로 이동합니다.
- 우측 상단에 위치한 [만료기한 변경] 버튼을 클릭합니다.
- 만료기한 변경 팝업창에서 만료 기간을 설정하고 [저장] 버튼을 클릭합니다.
이미지 스캔(취약점 분석)
이미지 스캔을 통해 이미지의 소프트웨어 취약점을 식별할 수 있습니다.
Container Registry는 Trivy의 CVE(Common Vulnerabilities and Exposures, 공개적으로 알려진 소프트웨어 보안 결함 목록) 데이터베이스를 사용하며, 이미지 스캔이 완료되면 스캔 결과에 대한 CVE 목록을 제공해 배포 중인 이미지의 보안 취약점에 대한 정보를 파악할 수 있습니다. Trivy에 대한 자세한 설명은 GitHub의 Trivy를 참고하시기 바랍니다.
이미지 스캔 유형은 리포지토리를 만들 때 자동 또는 수동으로 설정한 값이며, 이미 생성된 리포지토리라도 이미지 스캔 유형을 변경할 수 있습니다.
이미지 스캔 유형 변경에 대한 자세한 설명은 리포지토리 수정을 참고하시기 바랍니다.
이미지 자동 스캔
리포지토리 생성 시 이미지 스캔을 자동으로 선택한 경우, 리포지토리에 이미지가 Push 될 때 이미지 스캔이 자동으로 수행됩니다.
이미지 수동 스캔
리포지토리 생성 시 이미지 스캔을 수동으로 선택한 경우, 이미지를 수동으로 스캔할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 수동 스캔할 이미지를 선택합니다.
- 태그 탭에서 특정 태그를 펼친 후 다이제스트에서 [스캔] 버튼을 클릭합니다.
- 스캔은 하루에 한 번 가능하며, 이미 스캔이 실행된 경우 스캔 버튼이 비활성화되어 수동 스캔을 할 수 없습니다.
스캔 결과 확인
요약 정보, CVE를 기반으로 한 스캔 결과, 취약점 등을 자동/수동으로 스캔한 결과를 확인할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 스캔 결과를 확인할 이미지를 선택합니다.
- 태그 탭에서 특정 태그를 펼친 후 다이제스트에서 취약점 결과를 클릭합니다.
- 다이제스트 팝업의 취약점 탭에서 상세 스캔 결과를 확인합니다.
이미지 삭제
더 이상 필요하지 않은 이미지를 삭제할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 삭제할 이미지의 체크박스를 선택합니다.
- 우측 중간에 위치한 [삭제] 버튼을 선택합니다.
- 이미지 삭제 팝업창에서 이미지 이름을 입력하고 [삭제] 버튼을 클릭합니다.
이미지 Push/Pull
IAM 권한에 따라 Docker CLI를 이용해 사용자의 이미지를 Push 또는 Pull을 할 수 있습니다.
이미지 Push는 Container Registry 관리자와 프로젝트 멤버 권한이 있어야 할 수 있습니다. 단, 프로젝트에 속하지 않은 멤버도 해당 리포지토리에 리포지토리 멤버 역할을 부여받게 되면 이미지를 Push할 수 있습니다.
이미지 Pull은 해당 프로젝트에 속한 멤버는 누구나 할 수 있습니다. 또한 해당 리포지토리에 멤버와 뷰어 역할을 부여받게 되면 이미지 Pull을 할 수 있습니다. 단, 리포지토리가 공개로 설정되어 있으면 권한과 상관없이 URI를 아는 사용자는 누구나 이미지를 Pull 할 수 있습니다.
이미지 Push 전 레지스트리에 리포지토리를 생성해야 합니다. 리포지토리 생성에 대한 자세한 설명은 리포지토리 생성을 참고하시기 바랍니다.
이미지 Push
리포지토리에 이미지를 Push 할 수 있습니다.
-
도커 CLI에서 레지스트리 인증을 실행합니다.
- 레지스트리 인증에 대한 자세한 설명은 레지스트리 인증을 참고하시기 바랍니다
-
레지스트리 인증 후 리포지토리에 사용자의 로컬에서 이미지를 Push하기 위해 도커 CLI에서 다음의 명령어로 태깅합니다.
태깅 명령어docker tag {소스 이미지} {프로젝트 이름}.{리전명}.kcr.dev/{리포지토리 이름}/{이미지 이름}:{태그 이름}
-
태깅한 이미지를 명령을 실행해 리포지토리에 Push합니다.
Push 명령어 예시docker push {프로젝트 이름}.{리전명}.kcr.dev/{리포지토리 이름}/{이미지 이름}:{태그 이름}
이미지 이름은 아래의 조건으로만 가능합니다.
- 공백 없이 영어 소문자/숫자/하이픈(
-
)/언더바(_
)/마침표(.
)를 사용해 4~100자 이내로 작성 - 시작 문자는 영어 소문자/숫자만 가능하며, 하이픈(
-
)으로 끝날 수 없음
이미지 Pull
본인 계정을 인증한 사용자는 명령을 실행해 리포지토리에 있는 특정 이미지를 Pull 할 수 있습니다.
docker pull {프로젝트 이름}.{리전명}.kcr.dev/{리포지토리 이름}/{이미지 이름}:{태그 이름}
태그 관리
Container Registry에서 이미지의 태그를 관리하는 방법은 다음과 같습니다.
태그 상세 보기
이미지 태그의 상세 정보를 확인할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
-
리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 태그를 확인할 이미지를 선택합니다.
-
태그 탭을 클릭한 후, 특정 태그를 펼처 다이제스트를 선택합니다.
-
레이어 또는 취약점, 매니페스트 탭에서 해당 태그의 상세 정보를 확인합니다.
- 레이어 탭에서는 해당 이미지의 레이어 정보(이미지 ID, 명령어, 히스토리, Manifest V1, V2 다운로드 등)를 확인할 수 있습니다.
- 취약점 탭에서는 해당 이미지의 스캔 결과를 확인할 수 있습니다.
- 매니페스트 탭에서는 해당 이미지의 매니페스트 정보를 확인할 수 있습니다.
다이제스트 상세 보기
이미지 태그의 다이제스트 상세 정보를 확인할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
-
리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 태그를 확인할 이미지를 선택합니다.
-
태그 탭을 클릭한 후, 특정 태그를 펼칩니다.
- 다이제스트으로 해당 다이제스트의 정보를 확인할 수 있습니다.
- 상태으로 해당 다이제스트의 상태를 확인할 수 있습니다.
- 플랫폼으로 해당 다이제스트의 플랫폼/OS 정보를 확인할 수 있습니다.
- 취약점으로 해당 다이제스트의 취약점 정보와 스캔을 확인 및 실행할 수 있습니다. 보다 자세한 정보는 이미지 스캔(취약점 분석)
- 압축크기로 해당 다이제스트의 압축된 크기 정보를 확인할 수 있습니다.
태그 Pull 커맨드 보기
특정 태그를 Pull 할 수 있는 커맨드를 확인할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 이미지를 선택합니다.
- 태그 탭을 클릭한 후, 커맨드를 확인할 태그의 [더 보기] 아이콘 > Pull 커맨드 보기를 선택합니다.
- Pull 커맨드 보기 팝업창에서 정보를 확인합니다.
태그 추가
신규 태그를 추가할 수 있습니다.
태그 추가 시, 해당 리포지토리에 태그 덮어쓰기가 허용된 경우 중복된 이름의 태그는 덮어쓰기가 실행됩니다. 태그 덮어쓰기가 불가인 경우에는 동일한 태그 이름으로 태그를 추가할 수 없습니다. 태그 덮어쓰기 허용 설정은 리포지토리를 만들 때 설정하며, 필요한 경우에는 덮어쓰기 허용 설정을 변경할 수 있습니다. 태그 덮어쓰기 허용 설정에 대한 자세한 설명은 리포지토리 수정을 참고하시기 바랍니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 태그를 확인할 이미지를 선택합니다.
- 태그 탭을 클릭한 후, 태그를 추가할 태그의 [더 보기] 아이콘 > 태그 추가를 선택합니다.
- 태그 추가 팝업창에서 추가할 태그 이름을 입력하고 [저장] 버튼을 클릭합니다.
태그 히스토리보기
태그 추가, 삭제, 복구 등에 대한 내역을 확인할 수 있습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 태그를 확인할 이미지를 선택합니다.
- 태그 히스토리 탭을 클릭한 후, 정보를 확인합니다.
태그 삭제
더 이상 사용하지 않는 태그를 삭제할 수 있습니다. 태그를 삭제할 때 해당 태그와 동일한 다이제스트를 사용하는 태그도 함께 삭제됩니다. 삭제된 태그는 복구할 수 없습니다.
이미지 형식이 v2 이상인 경우에는 다이제스트(Digest)라고 하는 콘텐츠 주소 지정이 가능한 식별자가 포함됩니다. 이미지를 생성할 때 사용된 내용이 변경되지 않는 한 다이제스트도 변경되지 않습니다.
- 카카오클라우드 콘솔 > Container Pack > Container Registry 메뉴로 이동합니다.
- 리포지토리 메뉴에서 리포지토리를 클릭한 후, 이미지 탭에서 이미지 상세로 이동합니다.
- 태그 탭에서 특정 태그의 우측 [더보기] 메뉴 > 태그 삭제를 선택합니다.
- 태그 삭제 팝업창에서 태그 이름을 입력하고 [삭제] 버튼을 클릭합니다.