컨테이너 레지스트리에서 컨테이너 이미지 삭제
컨테이너 레지스트리에서 컨테이너 이미지를 삭제할 수 있습니다.
가비지 수집
Self-managed 인스턴스에서 컨테이너 이미지를 삭제하면 저장 공간이 회수되지 않고 이미지만 삭제 가능하게 표시됩니다. 사용하지 않는 컨테이너 이미지를 실제로 삭제하고 저장 공간을 회수하려면 관리자가 가비지 수집을 실행해야 합니다.
GitLab.com에서는 컨테이너 레지스트리의 최신 버전에 자동 온라인 가비지 수집기가 포함되어 있습니다. 자세한 내용은 이 블로그 포스트를 참조하세요. 새 버전의 컨테이너 레지스트리에서 아래의 경우 사용하지 않는 경우 24시간 후에 자동으로 삭제됩니다:
- 이미지 매니페스트에서 참조되지 않는 레이어.
- 태그가 없는 이미지 매니페스트 및 다른 매니페스트에서 참조되지 않는 이미지 매니페스트(다중 아키텍처 이미지 등).
온라인 가비지 수집기는 인스턴스 전반에 걸쳐 적용되는 기능으로 모든 네임스페이스에 적용됩니다.
GitLab UI 사용
GitLab UI를 사용하여 컨테이너 이미지를 삭제하려면 다음을 수행하세요:
- 왼쪽 사이드바에서 찾기 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
- 다음 중 하나를 선택:
- 그룹의 경우 운영 > 컨테이너 레지스트리를 선택합니다.
- 프로젝트의 경우 배포 > 컨테이너 레지스트리를 선택합니다.
- 컨테이너 레지스트리 페이지에서 다음을 선택하여 삭제할 대상을 선택할 수 있습니다:
- 빨간색 휴지통 아이콘을 선택하여 전체 리포지터리와 해당하는 모든 태그를 삭제합니다.
- 리포지터리로 이동하여 원하는 태그를 개별적으로 또는 일괄적으로 삭제하기 위해 원하는 태그 옆의 빨간색 휴지통 아이콘을 선택합니다.
- 대화 상자에서 태그 제거를 선택합니다.
GitLab API 사용
API를 사용하여 컨테이너 이미지 삭제 프로세스를 자동화할 수 있습니다. 자세한 내용은 다음 엔드포인트를 참조하세요:
GitLab CI/CD 사용
다음 예에서는 build
및 clean
두 단계를 정의합니다. build_image
작업은 브랜치의 컨테이너 이미지를 빌드하고, delete_image
작업은 해당 이미지를 삭제합니다. reg
실행 파일을 다운로드하여 $CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
와 일치하는 컨테이너 이미지를 제거하는 데 사용합니다.
사전 정의된 CI/CD 변수입니다.
이 예를 사용하려면 IMAGE_TAG
변수를 필요에 맞게 수정하세요.
stages:
- build
- clean
build_image:
image: docker:20.10.16
stage: build
services:
- docker:20.10.16-dind
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
only:
- branches
except:
- main
delete_image:
before_script:
- curl --fail --show-error --location "https://github.com/genuinetools/reg/releases/download/v$REG_VERSION/reg-linux-amd64" --output ./reg
- echo "$REG_SHA256 ./reg" | sha256sum -c -
- chmod a+x ./reg
image: curlimages/curl:7.86.0
script:
- ./reg rm -d --auth-url $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $IMAGE_TAG
stage: clean
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
REG_SHA256: ade837fc5224acd8c34732bf54a94f579b47851cc6a7fd5899a98386b782e228
REG_VERSION: 0.16.1
only:
- branches
except:
- main
reg
릴리스를 릴리스 페이지에서 다운로드한 다음, delete_image
작업에 정의된 REG_SHA256
및 REG_VERSION
변수를 변경하여 코드 예제를 업데이트할 수 있습니다.정리 정책 사용
프로젝트별로 정리 정책을 만들어 이전 태그 및 이미지가 정기적으로 컨테이너 레지스트리에서 제거되도록 할 수 있습니다.