registry
registry API, 엔드포인트 14개 (자동 생성)
앱 내장 OCI 컨테이너 레지스트리. /api/v1/registry/tokens 로 docker 로그인용 PAT 를 관리하고, 레지스트리 자체는 호스트 루트 /v2 에 있습니다. /v2/ 진입점만 여기에 문서화되어 있으며, 하위 경로는 OCI Distribution Spec 을 그대로 따릅니다.
이미지를 넣는 경로는 두 가지입니다. docker push 가 가능하면 /v2 를 쓰고, docker save 로 뜬 tar 파일만 있으면 /api/v1/registry/imports 로 올립니다. 반입한 이미지는 push 한 것과 저장 형태가 같아 같은 주소로 pull 됩니다.
GET /v2/
GET/v2/
컨테이너 레지스트리 진입점
앱 내장 OCI 컨테이너 레지스트리(Docker Registry HTTP API V2)의 진입점.
응답
| 상태 | 설명 |
|---|---|
| 200 | 인증 성공. 응답 본문은 비어 있고 Docker-Distribution-API-Version: registry/2.0 헤더가 실립니다. |
| 401 | 자격 증명이 없거나 유효하지 않음. WWW-Authenticate: Basic 으로 응답하므로 docker 클라이언트가 자동으로 재시도합니다. |
| 403 | 토큰의 역할에 이 작업 권한이 없음. |
GET /api/v1/registry/tokens
GET/api/v1/registry/tokens
컨테이너 레지스트리 토큰 목록
컨테이너 레지스트리 토큰 목록을 조회합니다(메타데이터만, 시크릿 제외).
필요 권한: VIEW
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
POST /api/v1/registry/tokens
POST/api/v1/registry/tokens
컨테이너 레지스트리 토큰 발급
호출자의 현재 테넌트로 범위가 지정된 컨테이너 레지스트리 토큰을 발급합니다.
요청 본문: application/json, TokenCreate
| 필드 | 형식 | 필수 | 설명 |
|---|---|---|---|
name | string? | Name | |
expires_in_days | integer? | Expires In Days |
응답
| 상태 | 설명 |
|---|---|
| 201 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
POST /api/v1/registry/tokens/{token_id}:revoke
POST/api/v1/registry/tokens/{token_id}:revoke
컨테이너 레지스트리 토큰 폐기
컨테이너 레지스트리 토큰을 폐기하여 즉시 액세스를 차단합니다.
필요 권한: VIEW
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
token_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
GET /api/v1/registry/repositories
GET/api/v1/registry/repositories
컨테이너 이미지 리포지토리 목록
현재 테넌트의 컨테이너 리포지토리를 나열합니다.
필요 권한: VIEW
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
page | query | integer | ||
page_size | query | integer? | ||
q | query | string? | 이름 부분 일치 검색 | |
sort | query | string? | 정렬 키 | |
order | query | string | asc | desc |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
GET /api/v1/registry/repositories/{name}/tags
GET/api/v1/registry/repositories/{name}/tags
리포지토리 태그 목록
리포지토리의 태그를 매니페스트 digest/크기와 함께 나열합니다.
필요 권한: VIEW
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
name | path | string | ✓ | |
page | query | integer | ||
page_size | query | integer? |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
GET /api/v1/registry/repositories/{name}/manifests/{reference}
GET/api/v1/registry/repositories/{name}/manifests/{reference}
이미지 매니페스트 상세
태그 또는 digest 로 이미지 매니페스트를 조회합니다.
필요 권한: VIEW
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
name | path | string | ✓ | |
reference | path | string | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
GET /api/v1/registry/imports
GET/api/v1/registry/imports
이미지 반입 목록
현재 테넌트의 이미지 반입 이력을 최신순으로 조회합니다.
필요 권한: VIEW
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
days | query | integer | 끝난 반입은 최근 N일 것만. 0 이면 전체. 진행 중인 반입은 항상 |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
POST /api/v1/registry/imports
POST/api/v1/registry/imports
이미지 반입 세션 생성
docker save 로 만든 이미지 아카이브를 올릴 업로드 세션을 엽니다.
필요 권한: DEVELOP
요청 본문: application/json, ImportCreate
| 필드 | 형식 | 필수 | 설명 |
|---|---|---|---|
repository | string? | Repository | |
tag | string? | Tag | |
size_bytes | integer | ✓ | Size Bytes |
filename | string? | Filename |
응답
| 상태 | 설명 |
|---|---|
| 201 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
PATCH /api/v1/registry/imports/{import_id}/chunks
PATCH/api/v1/registry/imports/{import_id}/chunks
이미지 반입 청크 전송
아카이브의 한 청크를 이어붙입니다(application/octet-stream).
필요 권한: DEVELOP
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
import_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
POST /api/v1/registry/imports/{import_id}:start
POST/api/v1/registry/imports/{import_id}:start
이미지 반입 시작
업로드를 마감하고 레지스트리 등록을 시작합니다.
필요 권한: DEVELOP
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
import_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
GET /api/v1/registry/imports/{import_id}
GET/api/v1/registry/imports/{import_id}
이미지 반입 상세
반입 한 건의 상태와 진행률을 조회합니다(VIEW 권한).
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
import_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
DELETE /api/v1/registry/imports/{import_id}
DELETE/api/v1/registry/imports/{import_id}
이미지 반입 기록 삭제
끝난 반입 기록을 삭제합니다(DEVELOP 권한).
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
import_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |
POST /api/v1/registry/imports/{import_id}:cancel
POST/api/v1/registry/imports/{import_id}:cancel
이미지 반입 취소
진행 중인 반입을 취소합니다.
필요 권한: DEVELOP
파라미터
| 이름 | 위치 | 형식 | 필수 | 설명 |
|---|---|---|---|---|
import_id | path | string (uuid) | ✓ |
응답
| 상태 | 설명 |
|---|---|
| 200 | Successful Response (object) |
| 422 | Validation Error (HTTPValidationError) |