Docker

이미지 레지스트리

yangheeb 2024. 5. 17. 17:12

 

01. 이미지 레지스트리


 

 

이미지 레지스트리

도커 이미지를 저장하기 위한 저장소이다.

 

이 이미지 레지스트리를 통하여

개인이나 팀이 이미지를 다른 사람들과 공유하거나 필요한 이미지를 다운받을 수 있다.

 

 

깃허브와 이미지 레지스트리는 유사한 특징을 가지고 있다.

GitHub Image Registry
( DockerHub ; Public Image Registry ) 
소스 코드 저장소 이미지 공유 저장소
소스 코드를 쉽게 보관
+ 다른 개발자들과 공유 가능
소스 코드를 사용해서 만들어진 어플리케이션
+ 실행 환경 포함되어 있는 이미지 저장

 

 

이미지 레지스트리의 특징은 아래와 같다.

  • 이미지공유 - 다운로드하고 업로드하는 기능
  • 이미지 레지스트리에 있는 이미지들을 검색하고 필요한 이미지를 찾아볼 수 있음
  • 이미지의 버전을 관리하는 역할 -> 사용자는 특정 버전의 이미지를 지정해서 다운받을 수 있음
  • 원하는 사용자만 이미지를 다운받을 수 있도록 인증 처리와 권한 관리 기능 제공
  • 업로드 된 이미지의 보안을 검증하는 기능
  • DevOps 파이프라인 기능과 연계해서 이미지를 업로드했을 때 -> 자동으로 배포 되도록 연계, 알림 기능

 

 

이미지가 저장되는 공간

도커가 설치되어 있는 호스트 머신의 로컬 스토리지,

온라인 저장소인 프라이빗 레지스트리, 퍼블릭 레지스트리로 크게 3가지가 존재한다.

 

 

- 로컬 스토리지 : 도커를 실행하는 호스트 OS의 특정 폴더 (PC에 특정 폴더)

 

- 프라이빗 레지스트리 : 특정한 네트워크에만 접근 가능

                                            ex  ) 기업에서 많이 사용 - 사내망

 

- 퍼블릭 레지스트리 : 모든 네트워크에서 접근 가능. 온라인에서 가입만 하면 모두가 사용

                                        ex ) 도커 허브 

 

 

 

도커 허브 같은 경우 모두가 접근할 수 있는 퍼블릭 레지스트리이기 때문에

보안상 문제가 발생할 수 있다는 단점이 존재한다.

 

이를 해결하기 위해서 아래의 2가지 방법을 사용한다.

  • 서버에 레지스트리 소프트웨어를 설치하여 사용 ( 하버, 도커 프라이빗 레지스트리 )
  • 퍼블릭 클라우드의 서비스를 사용 ( AWS의 ECR, Azure의 ACR )

 

 

 

 

 

이전 포스트에서 nginx 이미지를 만든 후 컨테이너를 실행해보았다.

 

이미지와 컨테이너

이전 포스트에서 docker run 명령을 사용하여 Nginx 컨테이너를 실행해 보았다.  가상화 기술 - 컨테이너 실행01. 컨테이너 실행 컨테이너를 실행하기 위해서는 터미널에 아래와 같은 명령어를 입

yangheeb.tistory.com

 

우리는 이때 "docker run nginx" 명령을 입력하여

nginx 이미지가 로컬 스토리지에 존재하는지 검색을 하고 -> 컨테이너를 실행하였는데,

이 로컬 스토리지에서 이미지 유무에 따라 온라인 레지스트리가 작동한다.

 

위의 경우와 달리 "로컬 스토리지"에 이미지가 없을 경우,

호스트 외부의 온라인 레지스트리에서 이미지를 로컬 스토리지로 다운받은 후 컨테이너를 실행하게 된다.

 

 

 

 

 

02. 이미지명 규칙


 

이미지의 네이밍 규칙은 이미지를 만들고 공유하는 데 있어서 꼭 필요한 정보이다.

 

이미지 이름은 아래와 같이 구성된다.

레지스트리주소 / 프로젝트명 / 이미지명 : 이미지태그

 

  • 레지스트리 주소 : 어떤 레지스트리를 사용할지 지정 (주소가 비어있는 경우 기본 값 주소 사용)
  • 프로젝트 명 : 이미지를 보관하는 폴더와 같은 개념
  • 이미지 명 : 다운로드 받을 이미지의 이름
  • 이미지 태그 : 이미지의 버전 (숫자와 영문을 모두 사용할 수 있음)

 

우리가 계속 사용해왔던 Nginx의 이미지명은docker.io/library/nginx:latest에 축약된 이미지 명이다.

 

 

 

 

위 포스트는 개발자를 위한 쉬운 도커 강의를 정리한 글입니다.

 

개발자를 위한 쉬운 도커 | 데브위키 - 인프런

데브위키 | 현업 개발자가 도커를 사용한 경험을 녹여낸 새로운 커리큘럼으로 기존 교재 및 강의와 차별된 강의를 제공합니다. 단순한 명령어 사용법이 아닌 도커를 왜 사용해야하는지 대한 근

www.inflearn.com