반응형
  • 컨테이너 보관 창고(Registry)
  • docker hub (Registry) 사용
  • Private Registry 구축

 

Docker Registry란?

  • Registry : 컨테이너 이미지를 저장하는 저장소
  • Docker Hub : hub.docker.com
  • Private Registry : 사내의 컨테이너 저장소

Registry :  여러가지 종류의 컨테이너 이미지가 모여있는 공간

이라고 하고, 그 종류에는

  1. docker hub가 운영하는 docker hub공간
  2. 사내에서 운영하는 프라이빗한 공간으로, private Registry

 

Docker hub 사용하기

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

  • image 종류 : Official Images, Verified Publisher, etc.
  • 이미지 검색 - $ docker search "keyword"

dockerhub홈페이지에 접속해서 Official Images만 살펴보고자 조건을 설정한 후 검색했다.

Official Images란, docker.com에서 직접관리하는 이미지들이다. 
그래서 믿고 쓸수 있고, 누구나 쓸 수 있게 만들어졌다. 

이번에는 Official image를 체크해제하고 그 위에있는 "Verified Publisher"을 체크해서 검색해 보았다.
해당 이미지들은 Bander사가 제공하는 이미지 들이다. 

이처럼 여러가지 검색조건을 설정해서 이미지를 검색할 수 있다.

이번에는 Databases에서 mysql을 검색해서 클릭해보도록 하겠다. 

클릭해서 들어가면 아래와 같이 레퍼런스, 도커파일 등을 볼 수 있다.

글을 작성하는 시점에서는 8.0.28버전이 최신버전인듯 하다.

해당 컨테이너이미지를 사용하고 싶으면 어떻게 해야하는지 레퍼런스와 해당 페이지의 설명을 확인해서 적용하면 된다.

이렇게 각 컨테이너이미지 페이지에서 컨테이너별로 간단한 설명과함께 정보를 얻을 수 있다.

그리고 여기는 docker hub에 있는 내 레포지토리 공간인데, 별도의 비용을 지불하지 않으면 컨테이너 이미지를 Public으로만 저장할 수 있다.

docker search

docker demon이 작동중인 경우, 해당 명령어를 통해 아래와 같이 터미널에서도 컨테이너 이미지를 검색할 수 있다.

 


 

Private Registry 구축

docker hub라는 공간은 public한 공간이고, 외부 네트워크가 가능해야만 사용할 수 있는데, 그거 말고 사내에서만 운영할 수 있는 Private한 registry를 만들수 있을까? 

만들 수 있다. 

그 공간을 만들기 위해서는 docker hub에 있는 official image인 registry를 찾아보자.

  • registry 컨테이너를 이용해 Private 컨테이너 운영

docker hub의 official imagedls registry는 컨테이너 이미지를 저장해놓고 서비스 해주는 컨테이너 레지스트리를 운영할 수 있도록 도와주는 컨테이너다.

웹서버를 운영할 때 nginx 라는 컨테이너 이미지를 사용했다.

마찬가지로 컨테이너 저장소를 운영하려면 registry라는 컨테이너 이미지를 사용하면 된다. 

 

$ docker run -d -p 5000:5000 --restart always --name registry registry:2

이 명령어는 registry 컨테이너를 동작시키는 명령어다.

그러면, 우리가 사내에서 운영할 수 있는 private registry 를 만들어 주게 된다.

사내에서 만들어진 컨테이너를 private registry에 push하거나 pull 할때는, 

private registry는 public registry와 다르게,  아래와같이 해주어야 하는데,

  • image repository
localhost:5000/ubuntu:18.04
docker.example.com:5000/ubuntu:18.04

이미지 레포지토리에 로컬호스트 포트넘버라든지,
호스트네임(도커호스트네임)을(위 예제에서는 docker.example.com이라고 이름을 붙힘) 콜론(:) 포트넘버와 함께 적용해야한다.

그래야 사내에 있는 private registry에  push 또는 pull을 할 수 있다.

전에 공부했던 docker hub랑 다른 점은,

docker hub의 official image컨테이너이름,태그 까지만 있었는데
private registry에다가 업로드해야 하는 컨테이너 이미지는
앞에 반드시 호스트네임과 포트넘버가 들어가야 한다.(단, 80포트를 쓰는 경우에는 생략이 가능)

 

오늘 내용을 정리해보면, 

  • docker registry가 무엇인가? - 도커 레지스트리는 컨테이너 이미지를 저장하는  저장소이다. 
  • Public registry는 docker hub이고, 10만개 이상의 컨테이너이미지가 이미 저장되어 있고, 내 계정의 레포지토리를 이용해서 개인적인 레포지토리를 운영할 수도 있다. 
  • private registry는 registry라는 컨테이너를 실행하면 private registry를 만들어 낼 수 있다.

 

다음시간에는

1. hub.docker.com에 컨테이너 업로드 및 다운로드
2. Private Registry 운영하기

를 실습해보도록 하겠다.

반응형