Docker 레지스트리란?
Docker 레지스트리(Docker Registry)는 Docker 이미지를 저장하고 관리하기 위한 저장소 시스템입니다.
개발자와 운영자가 이미지를 공유하고 배포하기 위해 필수적인 도구입니다.
1. Docker 레지스트리의 주요 개념
1.1 Docker 레지스트리(Docker Registry)
- 이미지 저장소: Docker 이미지를 저장하고 관리하는 중앙 서버.
- 공개 및 비공개: 이미지가 누구에게나 공개될 수도 있고, 특정 사용자만 접근 가능한 비공개 설정도 가능.
1.2 Docker 허브(Docker Hub)
- Docker에서 제공하는 공식 레지스트리 서비스.
- 기본 설정:
docker pull
이나docker push
명령어를 실행하면 기본적으로 Docker Hub와 통신.
1.3 프라이빗 레지스트리(Private Registry)
- 조직 내부에서만 사용하는 비공개 레지스트리.
- 자체적으로 호스팅하여 보안과 커스터마이징 강화 가능.
2. Docker 레지스트리의 동작 방식
- 이미지 푸시(push):
- 개발자가 Docker 이미지를 레지스트리에 업로드.
- 예:
docker push myregistry.com/myimage:latest
- 이미지 풀(pull):
- 다른 사용자가 레지스트리에서 이미지를 다운로드.
- 예:
docker pull myregistry.com/myimage:latest
- 태그(Tag):
- 이미지는 태그를 사용하여 버전 관리 가능.
- 예:
docker tag myimage:latest myregistry.com/myimage:v1.0
3. Docker 레지스트리 사용 사례
- 공개 이미지 배포:
- 오픈소스 프로젝트나 일반적인 애플리케이션 이미지를 공개 배포.
- 조직 내부 배포:
- 기업 내부에서만 사용하는 애플리케이션 이미지 관리.
- CI/CD 파이프라인 통합:
- 지속적 통합/배포(CI/CD) 환경에서 Docker 이미지를 버전별로 저장하고 배포.
4. Docker Hub와 프라이빗 레지스트리 비교
특징 | Docker Hub | 프라이빗 레지스트리 |
---|---|---|
접근성 | 누구나 접근 가능 (공개 이미지만) | 조직 내부에서만 사용 가능 |
보안 | 공개 이미지는 보안에 취약 | 완전한 제어와 보안 가능 |
커스터마이징 | 불가능 | 설정과 동작을 자유롭게 커스터마이징 가능 |
비용 | 기본 무료, 유료 플랜 가능 | 자체 서버와 유지 비용 필요 |
5. 프라이빗 레지스트리 구축
5.1 레지스트리 컨테이너 실행
Docker에서 자체 레지스트리를 실행하려면 registry
이미지를 사용:
docker run -d -p 5000:5000 --name registry registry:2
5.2 이미지 푸시와 풀
- 레지스트리에 이미지 푸시:
docker tag myimage localhost:5000/myimage docker push localhost:5000/myimage
- 레지스트리에서 이미지 풀:
docker pull localhost:5000/myimage
5.3 보안 설정
프라이빗 레지스트리에서 인증과 HTTPS를 설정하여 보안을 강화.
6. Docker 레지스트리 관리
6.1 이미지 목록 확인
프라이빗 레지스트리에 저장된 이미지 확인:
curl http://localhost:5000/v2/_catalog
6.2 특정 이미지의 태그 확인
curl http://localhost:5000/v2/myimage/tags/list
7. 결론
Docker 레지스트리는 Docker 이미지를 관리하고 배포하는 핵심 도구입니다.
Docker Hub와 프라이빗 레지스트리를 적절히 활용하면 팀 협업과 배포 환경의 효율성을 극대화할 수 있습니다.
'Docker' 카테고리의 다른 글
Docker 이미지 레이어 (0) | 2024.12.04 |
---|---|
Makefile (0) | 2024.12.03 |
Dockerfile과 Alpine (0) | 2024.12.03 |
BusyBox와 Debian 비교 (0) | 2024.12.03 |
Fork (0) | 2024.12.03 |