도커 허브란?
Docker Hub는 컨테이너 이미지를 저장하고 공유하는 공식 이미지 레지스트리 서비스다.
쉽게 말해, Docker 이미지의 GitHub 같은 저장소라고 보면 된다.
Docker Hub의 주요 역할
- 이미지 저장 (Push)
→ 내가 만든 이미지를 업로드하여 보관 - 이미지 다운로드 (Pull)
→ 다른 사람이 만든 이미지를 가져와 바로 실행 - 자동 빌드 (Automated Build)
→ GitHub 등과 연동하여 코드 변경 시 Docker 이미지를 자동으로 빌드 및 업데이트 - 공개/비공개 레포지토리 관리
→ 누구나 사용 가능하게 공개하거나, 내부용으로 비공개 설정 가능
Docker 이미지 기본 동작 흐름 (Build → Push → Pull)
이미지 빌드 (Build)
- 개발자가 Dockerfile을 기반으로
→ 로컬 환경에서 컨테이너 이미지 생성
docker build -t my-app:latest .
이미지 태깅 (Tag)
- 생성된 이미지에 레지스트리 주소 + 이름 + 버전(tag) 지정
- Docker Hub 업로드를 위한 준비 단계
docker tag my-app:latest myrepo/my-app:latest
이미지 푸시 (Push)
- 태그된 이미지를
→ Docker Hub 같은 원격 레지스트리에 업로드
docker push myrepo/my-app:latest
이미지 풀 및 실행 (Pull & Run)
- 다른 환경에서 이미지를 다운로드(pull) 후
→ 컨테이너로 실행(run)
docker pull myrepo/my-app:latest
docker run myrepo/my-app:latest
전체 흐름
Build → Tag → Push → Pull → Run
Docker Hub 보안 관점
- 공개 이미지 사용 시 주의
→ 악성 코드, 백도어, 취약점 포함 가능성 존재 - 검증된 이미지 사용
→ 공식 이미지(Official Image) 또는 신뢰 가능한 퍼블리셔 이미지 사용
→ 이미지 다운로드 수, 업데이트 이력, 유지관리 상태 확인 - 민감 정보 포함 금지
→ API Key, 인증정보, config 파일 등을 이미지에 포함하지 않기
→ 환경변수, Secret 관리 방식으로 외부 주입
추가: 보안 best practice
- 이미지 취약점 스캔 필수
→ docker scan, Trivy, Grype 등으로 CVE 점검 - 최소 권한 원칙 적용
→ 컨테이너를 root가 아닌 non-root 사용자로 실행 - 최소 베이스 이미지 사용
→ alpine, distroless로 공격 표면 최소화 - 불필요한 패키지 제거
→ 이미지 내 공격 가능 요소 축소 - 이미지 서명 및 무결성 검증
→ Docker Content Trust, Cosign 활용
본 글은 강의 내용을 기반으로 학습한 내용을 정리한 글입니다.
https://skilleat.com/class/?idx=14
Docker Essentials - 감 잡히는 컨테이너 & 도커 : 스킬잇
기술을 가장 쉽고 맛있게 배우는 곳, SkillEat. 클라우드, 쿠버네티스, IT 개념부터 실습까지, 스킬을 맛있게 먹어치우세요!
skilleat.com
'Docker' 카테고리의 다른 글
| 5. Docker의 데이터 관리: Volume 완전 이해 (0) | 2026.05.04 |
|---|---|
| 4. Dockerfile Best Practices 8가지 (0) | 2026.04.15 |
| 3-1. [실습] 나만의 유틸리티 이미지 만들기 (Alpine 버전) / no cache관련 (0) | 2026.04.15 |
| 3. Dockerfile의 기본 구조 (1) | 2026.04.15 |
| 2-3. [실습] 이미지 관리 및 정리 실습 (0) | 2026.04.15 |