API V2 가이드


기본 정보

API URL

https://ncr.apigw.ntruss.com/ncr/api

API Header

항목 Mandatory 설명
Content-Type Mandatory 요청 Body Content Type을 application/json으로 지정
x-ncp-apigw-timestamp Mandatory 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타낸 것이다.
API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
x-ncp-iam-access-key Mandatory 포탈 또는 Sub Account에서 발급받은 Access Key ID
x-ncp-apigw-signature-v2 Mandatory 위 예제의 Body를 Access Key Id와 맵핑되는 SecretKey로 암호화한 서명
HMAC 암호화 알고리즘은 HmacSHA256 사용

 

Container Registry API V2

Registry 목록 반환

Container Registry에 등록된 Registry 목록을 반환합니다.

요청 URL

GET https://ncr.apigw.ntruss.com/ncr/api/v2/repositories

Content-Type: application/json; charset=utf-8
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Headers

API Header 바로가기

응답 Body

{
  "count": "number",
  "next": "number",
  "previous": "number",
  "results": [
    {
      "name": "string",
      "bucket": "string",
      "end_point": "string",
      "usage": "string",
      "created": "number",
      "status": "string"
    }
  ]
}
항목 Type 설명 비고
count number 등록된 레지스트리의 총 개수
next number 다음 페이지의 번호. 다음 페이지가 없다면 Null을 반환.
previous number 이전 페이지의 번호. 이전 페이지가 없다면 Null을 반환.
results[].name string 레지스트리 이름
results[].bucket string 레지스트리와 연동된 Object Storage의 Bucket 이름
results[].end_point string Docker Client가 Registry에 접근하기 위한 엔드 포인트
results[].created number 레지스트리의 생성일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
results[].status string 레지스트리의 상태 반환 Object Storage와의 연동 상태를 표현. 정상 상태라면 running을 반환. Bucket이 삭제 되었다면 disconnected를 반환

응답 Status

HTTP Status Desc
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error

신규 Registry 등록

Object Storage의 Bucket과 연동된 Registry를 생성합니다.

요청 URL

POST https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 생성할 레지스트리 이름

Headers

API Header 바로가기

요청 Body

{
  "bucket": "string"
}
항목 Mandatory Type 설명 비고
bucket Mandatory string Bucket 이름 생성될 레지스트리와 연동될 Object Storage의 Bucket 이름. 중복 사용 불가.

응답 Body

{
  "returnCode": "string",
  "returnMessage": "string"
}
항목 Type 설명 비고
returnCode string 리턴 코드
returnMessage string 리턴 메시지

응답 Status

HTTP Status Desc
201 OK
400 Bad Request
401 Unauthorized
403 Forbidden
409 Conflict
500 Internal Server Error

Registry 삭제

특정 Registry를 삭제합니다.

요청 URL

DELETE https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 삭제할 레지스트리 이름

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "returnCode": "string",
  "returnMessage": "string"
}
항목 Type 설명 비고
returnCode string 리턴 코드
returnMessage string 리턴 메시지

응답 Status

HTTP Status Desc
204 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image 목록 반환

레지스트리 내 등록된 Image들의 목록을 반환합니다.

요청 URL

GET https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 이미지 목록을 조회할 레지스트리 이름

Parameters

항목 Mandatory Type 설명 비고
page - number 페이지 번호 조회할 페이지 번호. 페이지 번호는 0보다 큰 값을 입력.
pagesize - number 페이지 크기 조회할 페이지 크기. 페이지 크기는 0보다 큰 값을 입력.

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "count": "number",
  "next": "number",
  "previous": "number",
  "results": [
    {
      "user": "string",
      "name": "string",
      "namespace": "string",
      "repository_type": "string",
      "status": "number",
      "description": "string",
      "is_private": "boolean",
      "is_automated": "boolean",
      "can_edit": "boolean",
      "star_count": "number",
      "pull_count": "number",
      "last_updated": "number"
    }
  ]
}
항목 Type 설명 비고
count number 등록된 레지스트리의 총 개수
next number 다음 페이지의 번호. 다음 페이지가 없다면 Null을 반환.
previous number 이전 페이지의 번호. 이전 페이지가 없다면 Null을 반환.
result[].user string 사용하지 않음 사용하지 않음
result[].name string 이미지 이름
result[].namespace string 레지스트리 이름
result[].repository_type string 사용하지 않음 사용하지 않음
result[].status number 사용하지 않음 사용하지 않음
result[].description string 이미지에 대한 short description
result[].is_private boolean 사용하지 않음 사용하지 않음
result[].is_automated boolean 사용하지 않음 사용하지 않음
result[].can_edit boolean 사용하지 않음 사용하지 않음
result[].star_count number 사용하지 않음 사용하지 않음
result[].pull_count number 이미지에 대한 총 Pull count 값
result[].last_update number 이미지의 최근 변경일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환

응답 Status

HTTP Status Desc
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image 정보 반환

레지스트리 내 등록된 Image의 상세 정보를 반환합니다.

요청 URL

GET https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 상세 이미지를 조회할 레지스트리 이름
imageName Mandatory string 이미지 이름 상세 정보 조회 대상 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "user": "string",
  "name": "string",
  "namespace": "string",
  "repository_type": "string",
  "status": "number",
  "description": "string",
  "is_private": "boolean",
  "is_automated": "boolean",
  "can_edit": "boolean",
  "star_count": "number",
  "pull_count": "number",
  "last_updated": "number",
  "has_starred": "boolean",
  "full_description": "string",
  "affiliation": "string",
  "permissions": {
    "read": "boolean",
    "write": "boolean",
    "admin": "boolean"
  }
}
항목 Type 설명 비고
user string 사용하지 않음 사용하지 않음
name string 이미지 이름
namespace string 레지스트리 이름
repository_type string 사용하지 않음 사용하지 않음
status number 사용하지 않음 사용하지 않음
description string 이미지에 대한 short description
is_private boolean 사용하지 않음 사용하지 않음
is_automated boolean 사용하지 않음 사용하지 않음
can_edit boolean 사용하지 않음 사용하지 않음
star_count number 사용하지 않음 사용하지 않음
pull_count number 이미지에 대한 총 Pull count 값
last_update number 이미지의 최근 변경일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
has_starred boolean 사용하지 않음 사용하지 않음
full_description string 이미지에 대한 상세 description
affiliation boolean 사용하지 않음 사용하지 않음
permissions object 사용하지 않음 사용하지 않음

응답 Status

HTTP Status Desc
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image의 정보 수정

레지스트리에 등록된 이미지에 대한 description, full_description을 업데이트 합니다.

요청 URL

PUT https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 정보를 변경할 이미지가 있는 레지스트리 이름
imageName Mandatory string 이미지 이름 정보를 변경할 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)

Headers

API Header 바로가기

요청 Body

{
  "description": "string",
  "full_description": "string"
}
항목 Mandatory Type 설명 비고
description - string 이미지에 대한 짧은 설명 작성
full_description - string 이미지에 대한 상세 설명 작성 Markdown 지원

응답 Body

{
  "returnCode": "string",
  "returnMessage": "string"
}
항목 Type 설명 비고
returnCode string 리턴 코드
returnMessage string 리턴 메시지

응답 Status

HTTP Status Desc
204 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image 삭제

레지스트리에 등록된 이미지를 삭제합니다.

요청 URL

DELETE https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 삭제 대상 이미지가 있는 레지스트리 이름
imageName Mandatory string 이미지 이름 삭제할 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "returnCode": "string",
  "returnMessage": "string"
}
항목 Type 설명 비고
returnCode string 리턴 코드
returnMessage string 리턴 메시지

응답 Status

HTTP Status Desc
204 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image의 Tag 목록 반환

레지스트리의 이미지에 등록된 Tag 목록을 반환합니다.

요청 URL

GET https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}/tags

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 태그를 반환할 이미지가 있는 레지스트리 이름
imageName Mandatory string 이미지 이름 태그를 반환할 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "count": "number",
  "next": "number",
  "previous": "number",
  "results": [
    {
      "name": "string",
      "full_size": "number",
      "images": [
        {
          "size": "number",
          "architecture": "string",
          "variant": "string",
          "features": "string",
          "os": "string",
          "os_version": "string",
          "os_features": "string",
          "created": "number"
        }
      ],
      "id": "number",
      "repository": "number",
      "creator": "string",
      "last_updater": "string",
      "last_updated": "number",
      "image_id": "number",
      "v2": "boolean"
    }
  ]
}
항목 Type 설명 비고
count number 등록된 레지스트리의 총 개수
next number 다음 페이지의 번호. 다음 페이지가 없다면 Null을 반환.
previous number 이전 페이지의 번호. 이전 페이지가 없다면 Null을 반환.
result[].name string 태그 이름
result[].full_size number 태그 사이즈
result[].images[].size number 이미지 사이즈
result[].images[].architecture string amd64 혹은 ppc64le와 같은 CPU 아키텍쳐
result[].image[].features string 사용하지 않음 사용하지 않음
result[].image[].os string linux 혹은 windows와 같은 운영체제
result[].image[].os_version string 사용하지 않음 사용하지 않음
result[].image[].os_features string 사용하지 않음 사용하지 않음
result[].image[].created string 이미지 생성일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
result[].id number 태그 아이디
result[].repository number 레지스트리 아이디
result[].creator string 이미지 등록자 아이디 사용하지 않음
result[].last_updater string 이미지 등록자 아이디 사용하지 않음
result[].last_updated string 이미지 최근 변경일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
result[].image_id number 이미지 아이디
result[].v2 boolean 이미지에 대한 v2 스펙 적용 유무

응답 Status

HTTP Status Desc
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image의 특정 Tag 정보 반환

레지스트리의 이미지에 등록된 특정 Tag의 상세 정보를 반환합니다.

요청 URL

GET https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}/tags/{reference}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 상세 태그 정보를 반환할 이미지가 있는 레지스트리 이름
imageName Mandatory string 이미지 이름 상세 태그 정보를 반환할 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)
reference Madatory string 태그 이름 상세 정보를 조회할 태그 이름

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "name": "string",
  "full_size": "number",
  "images": [
    {
      "size": "number",
      "architecture": "string",
      "variant": "string",
      "features": "string",
      "os": "string",
      "os_version": "string",
      "os_features": "string",
      "created": "number"
    }
  ],
  "id": "number",
  "repository": "number",
  "creator": "string",
  "last_updater": "string",
  "last_updated": "number",
  "image_id": "number",
  "v2": "boolean"
}
항목 Type 설명 비고
name string 태그 이름
full_size number 태그 사이즈
images[].size number 이미지 사이즈
images[].architecture string 이미지 동작 환경
image[].features string 사용하지 않음 사용하지 않음
image[].os string 이미지 구동 환경
image[].os_version string 사용하지 않음 사용하지 않음
image[].os_features string 사용하지 않음 사용하지 않음
image[].created string 이미지 생성일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
id number 태그 아이디
repository number 레지스트리 아이디
creator string 이미지 등록자 아이디 사용하지 않음
last_updater string 이미지 등록자 아이디 사용하지 않음
last_updated string 이미지 최근 변경일 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 반환
image_id number 이미지 아이디
v2 boolean 이미지에 대한 v2 스펙 적용 유무

응답 Status

HTTP Status Desc
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error

Registry내 등록된 Image의 특정 Tag 제거

레지스트리의 이미지에 등록된 특정 Tag를 제거합니다.

요청 URL

DELETE https://ncr.apigw.ntruss.com/ncr/api/v2/repositories/{registry}/{imageName}/tags/{reference}

x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}

Path Variables

항목 Mandatory Type 설명 비고
registry Mandatory string 레지스트리 이름 삭제할 이미지의 태그가 있는 레지스트리 이름
imageName Mandatory string 이미지 이름 삭제할 태그의 이미지 이름. URI Encoding한 값을 사용해야함. (e.g. hello/world의 경우 hello%2Fworld로 변환하여 사용)
reference Madatory string 태그 이름 삭제할 태그 이름

Headers

API Header 바로가기

요청 Body

없음

응답 Body

{
  "returnCode": "string",
  "returnMessage": "string"
}
항목 Type 설명 비고
returnCode string 리턴 코드
returnMessage string 리턴 메시지

응답 Status

HTTP Status Desc
204 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error