Docker Hub

마지막 업데이트: 2026년 2월 25일

개요

Docker Hub는 세계에서 가장 큰 컨테이너 이미지 저장소로, 수백만 개의 공개 이미지를 호스팅합니다. Docker Official Images, Verified Publishers, 커뮤니티 이미지를 제공하며, 개인 및 팀을 위한 프라이빗 저장소 기능도 지원합니다.

spinner

Docker Hub 플랜 비교

플랜별 기능

기능
Free
Pro
Team
Business

가격

무료

$5/월

$9/사용자/월

문의

공개 저장소

무제한

무제한

무제한

무제한

프라이빗 저장소

1개

무제한

무제한

무제한

팀 기능

SSO/SAML

감사 로그

취약점 스캐닝

제한적

병렬 빌드

1

5

15

무제한

Rate Limits (Pull 제한)

Docker Hub는 익명 및 무료 사용자에게 pull 제한을 적용합니다:

인증 상태
Rate Limit
기준

익명

100 pulls / 6시간

IP 주소당

Free (인증됨)

200 pulls / 6시간

사용자당

Pro

무제한

-

Team

무제한

-

Business

무제한

-

Rate Limit 확인 방법:


Kubernetes에서 Docker Hub 사용

imagePullSecrets 설정

1. Docker Hub 자격 증명으로 Secret 생성:

2. Pod에서 Secret 참조:

3. ServiceAccount에 기본 imagePullSecrets 설정:

Access Token 사용 (권장)

비밀번호 대신 Access Token 사용을 권장합니다:

Access Token 권한 범위:

  • Read-only: 이미지 pull만 허용

  • Read & Write: pull + push 허용

  • Read, Write & Delete: 전체 권한


Docker Hub Rate Limit 대응 전략

spinner

전략 1: Pull-through Cache (containerd)

containerd 설정으로 Docker Hub를 캐싱합니다:

전략 2: Amazon ECR Pull-through Cache

ECR을 Docker Hub의 프록시 캐시로 사용:

Kubernetes에서 사용:

전략 3: Harbor Pull Replication

Harbor에서 필요한 이미지를 자동으로 복제:

전략 4: 인증된 Pull 사용

모든 노드에서 인증된 pull을 수행하도록 설정:


자동화된 빌드 (Automated Builds)

Docker Hub는 GitHub/GitLab 연동을 통한 자동 빌드를 지원합니다.

GitHub 연동 설정

1. Docker Hub에서 GitHub 계정 연결:

  • Docker Hub > Account Settings > Linked Accounts > GitHub

2. Automated Build 저장소 생성:

  • Create Repository > GitHub에서 저장소 선택

  • Build Rules 설정

Build Rules 예시:

Source Type
Source
Docker Tag
Dockerfile Location

Branch

main

latest

/Dockerfile

Branch

develop

dev

/Dockerfile

Tag

/^v([0-9.]+)$/

{\1}

/Dockerfile

빌드 훅 (Build Hooks)

빌드 프로세스를 커스터마이징하는 훅 스크립트:

GitHub Actions 대안 (권장)

Docker Hub Automated Builds 대신 GitHub Actions 사용:


공개 이미지 보안 사례

Supply Chain Attack 사례

사례 1: Typosquatting

사례 2: 계정 탈취

  • 인기 이미지 메인테이너 계정 탈취

  • 악성 코드가 포함된 새 버전 푸시

사례 3: Base Image 오염

안전한 이미지 선택 가이드

1. Official Images 우선:

2. Verified Publishers:

3. 이미지 검증:

4. Content Trust 활성화:

Kubernetes Admission Control

서명되지 않은 이미지 차단:


Docker Hub API 활용

태그 목록 조회

이미지 정보 조회

취약점 스캐닝 결과 조회

저장소 관리


CI/CD 통합

GitLab CI 예시

Jenkins Pipeline


모범 사례

1. 보안

2. Rate Limit 관리

3. 저장소 관리

4. 자격 증명 관리


요약

항목
권장 사항

플랜

프로덕션: Pro 이상, 팀: Team

이미지

Official Images, Verified Publishers

태그

버전 고정, 다이제스트 사용

인증

Access Token (비밀번호 대신)

Rate Limit

Pull-through cache, 인증된 pull

보안

Content Trust, 취약점 스캐닝

CI/CD

GitHub Actions 권장


참고 자료

마지막 업데이트