도커 사설 이미지 레지스트리 구축 및 운영

도커에서 사설 이미지 레지스트리를 운영하려면 레지스트리 이미지를 사용해야 합니다. 먼저 레지스트리 이미지를 가져와서 컨테이너를 생성합니다.

  1. 레지스트리 이미지 가져오기 및 컨테이너 생성

# 레지스트리 이미지 가져오기
docker pull registry

# 컨테이너 생성
docker run -d -v /var/lib/my_registry:/var/lib/registry -p 5000:5000 --restart=always --name=my_registry registry

2.daemon.json 구성 수정

daemon.json 파일에 아래 내용을 추가합니다.

{
    "insecure-registries": ["localhost:5000"]
}

참고: 리눅스 환경에서는daemon.json 파일이 /etc/docker/daemon.json에 위치합니다. Docker Desktop 사용자는 설정 창을 통해 직접 수정할 수 있습니다.

# 구성 확인
docker info
  1. 레지스트리 인터페이스 사용 방법

이미지를 업로드하려면 다음 명령을 사용합니다.

3.1 API 사용 가능 여부 확인

curl -I -X GET http://localhost:5000/v2/

200 OK가 반환되면 정상 작동 중입니다.

3.2 등록된 모든 이미지 보기

curl -X GET http://localhost:5000/v2/_catalog

3.3 특정 이미지의 맨IFEST 가져오기

curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json" http://localhost:5000/v2/<이미지명>/manifests/<태그>

예를 들어:

curl  -I --header "Accept:application/vnd.docker.distribution.manifest.v2+json" "http://localhost:5000/v2/java_ubuntu/manifests/latest"

3.4 이미지 태그 목록 가져오기

curl http://localhost:5000/v2/docker_redis/tags/list

3.5 이미지 삭제 방법

태그만 삭제할 수 있으며 실제 이미지 파일은 삭제되지 않습니다.

단계 1: 삭제 설정 구성

컨테이너 내 /etc/docker/registry/config.yml 파일에 아래 내용을 추가합니다.

#docker cp config.yml my_registry:/etc/docker/registry/config.yml

storage:
    delete:
        enabled: true

컨테이너를 재시작합니다.

단계 2: 이미지의 DIGEST 확인

curl  -I --header "Accept:application/vnd.docker.distribution.manifest.v2+json" "http://localhost:5000/v2/java_ubuntu/manifests/latest"

단계 3: 이미지 삭제

curl -I -X DELETE "http://localhost:5000/v2/java_ubuntu/manifests/sha256:440ac63d5dd85c0c5a2db44fe995f4b53cc4e4c9c4ebe6456f7e89543203da73"

단계 4: 태그 상태 확인

태그가 NULL로 표시됩니다.

단계 5: 실제 파일 삭제

# 실제 파일 삭제
docker exec my_registry rm -rf /var/lib/registry/docker/registry/v2/repositories/java_ubuntu
# 쓰레기 수거
docker exec my_registry bin/registry garbage-collect /etc/docker/registry/config.yml
# 컨테이너 재시작
docker restart my_registry

3.6 쓰레기 수거 수행

docker exec my_registry bin/registry garbage-collect /etc/docker/registry/config.yml

참조자료:

  • Docker Registry 상세 설명 - 원래는 무스의 블로그
  • Docker 사설 레지스트리에서 이미지 삭제 방법 -知乎

태그: docker Registry 사설 이미지 레지스트리 이미지 관리 컨테이너 기술

5월 23일 11:14에 게시됨