본문 바로가기

Program

Docker Hub API 완전 정복 가이드

반응형

 

🚢 Docker Hub API 완전 정복 가이드 (최신 버전 기준)

Docker는 현대 DevOps 환경에서 빼놓을 수 없는 컨테이너 기술입니다. 이 중 Docker Hub는 이미지 저장소 역할을 하며, 공식 이미지부터 커스텀 이미지까지 다양한 컨테이너 이미지를 손쉽게 공유하고 배포할 수 있도록 해줍니다.
그리고 이 Docker Hub를 자동화하거나 외부 시스템과 연동하고자 할 때 필요한 것이 바로 Docker Hub API입니다.

본 포스팅에서는 공식 문서를 바탕으로, 최신 Docker Hub API의 구성과 주요 기능을 상세하게 설명드립니다.


 

🔑 API 인증(Authentication)

Docker Hub API를 사용하려면 먼저 인증 토큰을 받아야 합니다. 인증은 기본적으로 JWT (JSON Web Token)을 사용하며, /v2/users/login/ 엔드포인트에 POST 요청을 보내 로그인합니다.

🔹 요청 예시:

curl -X POST https://hub.docker.com/v2/users/login/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your_dockerhub_username", "password": "your_password"}'

🔹 응답 예시:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5..."
}

이 토큰을 이용해 이후 요청의 인증 헤더에 Authorization: JWT {token}을 추가하면 됩니다.


📦 주요 엔드포인트 정리

1. 🔍 Repository 검색

  • GET /v2/repositories/{username}/
  • 사용자의 공개 저장소 목록을 가져올 수 있습니다.

2. 📁 이미지 태그 조회

  • GET /v2/repositories/{username}/{repository_name}/tags/
  • 특정 저장소에 포함된 이미지 태그들을 조회할 수 있습니다.

예:

curl https://hub.docker.com/v2/repositories/library/nginx/tags/

3. 📝 사용자 정보 확인

  • GET /v2/users/{username}/
  • 사용자 공개 정보를 가져옵니다.

📑 실전 활용 예시

예제 1: 특정 이미지의 최신 버전 확인하기

curl https://hub.docker.com/v2/repositories/library/redis/tags/latest

이를 활용하면 자동화된 CI/CD 파이프라인에서 항상 최신 버전을 가져오도록 설정할 수 있습니다.

예제 2: 내 저장소 목록 가져오기 (인증 필요)

curl -H "Authorization: JWT {token}" \
  https://hub.docker.com/v2/repositories/myusername/

자동화 스크립트에서 내 저장소를 관리하거나 주기적으로 이미지 목록을 수집할 때 활용할 수 있습니다.


🧠 API 사용 시 유의사항

  1. Rate Limit(요청 제한): 인증 없이 사용할 경우 하루에 허용된 요청 수가 매우 제한적입니다.
  2. 비공개 저장소 접근은 반드시 인증된 사용자만 가능합니다.
  3. 정식 API가 아니거나 문서화되지 않은 엔드포인트는 예고 없이 변경될 수 있습니다. 공식 문서에 나온 경로만 사용하는 것이 안전합니다.
  4. 오픈소스 프로젝트 등에서 사용할 경우, 민감한 정보를 담은 API 토큰은 절대 외부에 노출되지 않도록 .env 파일 등에 따로 저장해야 합니다.

🛠️ 활용 사례

  • CI/CD 자동화: Jenkins, GitHub Actions에서 Docker 이미지 빌드/푸시 시 API로 상태 확인
  • 보안 스캐닝 자동화: 이미지 버전 리스트를 받아와 보안 취약점을 가진 태그 자동 검출
  • Docker Hub 모니터링 툴 제작: 사용자 저장소 및 태그 정보를 대시보드에 시각화

🧩 마치며

Docker Hub API는 단순한 RESTful API처럼 보일 수 있지만, 실제 활용해보면 자동화 작업, 이미지 관리, CI/CD 연동 등 다양한 영역에서 강력한 도구가 됩니다.
특히 DevOps나 인프라 자동화에 관심 있는 개발자라면 꼭 한 번 직접 호출해보고, 팀 프로젝트에 적용해보시기를 권장드립니다.

최신 Docker Hub API 문서 링크: https://docs.docker.com/reference/api/hub/latest/


 

반응형