내 잡다한 노트

도커 레포지토리와 레지스터 본문

DevOps/docker

도커 레포지토리와 레지스터

peanutwalnut 2024. 6. 27. 17:39

컨테이너 이미지를 저장하고 배포하기 위해 Registry와 Repository를 사용한다.

 

Registry는 도커 이미지를 저장하는 서버이다. 

Repository는 레지스트리 내에서 특정 이미지의 버전들을 관리하는 단위이다. 각 레포지토리는 여러 버전(태그)을 저장한다. 예를 들어, nginx 라는 레포지토리 안에는 nginx:latest, nginx:1.19, nginx:1.18 등과 같은 여러 버전의 이미지가 있을 수 있다. 

Registry에는 하나 이상의 Docker Repository를 포함할 수 있다. 

이미지를 저장하고 관리하며, 이미지의 push 및 pull 요청을 처리한다. 

Docker hub가 유명한 공용 Registry이다. 우리가 도커 명령어로 pull을 해올 때 여기서 이미지를 다운받게 된다.

사설 레지스트리도 운영할 수 있는데, 조직 내에서만 사용할 수 있는 것이다.

예를 들어, AWS의 ECR, Google의 GCR, Azure의 ACR 등이 있다.

 

 

Repository

특정 이미지의 여러 버전을 저장하는 장소이다. 

특정 이미지의 tag를 통해 버전을 관리한다. 각 태그는 특정 버전의 이미지를 가리킨다.

예를 들어, nginx 레포지토리에는 nginx:latest 가 있고, nginx:1.19.6, nginx:alpine 등의 태그가 존재하며 

각각은 다른 버전을 가지고 있다.

 

회사에 사설 Registry를 운영할 까 생각중이다.

레지스트리를 운영할 때 이점을 정리하고자 한다.

1. 보안 강화

- 사용자가 레지스트리에 접근할 수 있는 권한을 세부적으로 제어할 수 있다. 특정 팀이나 사용자에게만 접근 권한을 부여    할 수 있다.

 

2. 성능 향상

- 네트워크 대역폭 절감 : 로컬 네트워크에서 이미지를 저장하고 가져오기 때문에, 인터넷을 통한 대규모 데이터 전송을 줄일 수 있다.

- 빠른 배포 : 이미지 다운로드 및 업로드 속도가 로컬 네트워크 내에서 이루어지므로, 컨테이너를 더 빠르게 배포할 수 있다.

 

3. 커스터마이징

- 환경 맞춤 설정 : 조직의 필요에 맞게 레지스트리를 구성할 수 있다. 예를 들어, 특정 CI/CD 파이프라인과 통합하거나, 사용자 정의 인증 메커니즘을 적용할 수 있다.

- 플러그인 및 확장성 : 추가 기능을 설치하여 레지스트리 기능을 확장할 수 있다. 이미지 서명, 스캐닝 도구 등을 통합할 수 있다.

 

4. 지속적인 통합 및 매포

- CI/CD 파이프라인의 일환으로 사설 레지스트리를 사용하여 이미지 빌드, 테스트, 배포 과정을 자동화할 수 있다.