
기본적으로 Docker는 Docker Hub라는 공식 Registry를 통해서 이미지를 Push, Pull 할 수 있다.
하지만 공개적으로 노출시킬 이미지가 아니라면 Private Registry를 별도로 구축해서 이용해야한다.
이번 포스팅에선 Docker Private Registry를 구축하는 방법에 대해 작성해보려 한다.
Docker Registry 를 구축하기 위해선 SSL 인증서가 필요하다.
만약 인증서를 구매하지 않고 사용하고 싶다면 insecure-registry 를 등록하거나 아니면 Let’s Encrypt 와 같은 무료 TLS솔루션을 찾아보기 바란다.
먼저 Docker Registry에 있는 docker-compose 파일을 이용하도록 한다.
1 | registry: |
- cert - SSL인증서가 들어갈 디렉토리
- auth - htpasswd 계정 정보를 넣어줄 디렉토리
인증서가 준비되었다면 auth/htpasswd 파일을 만들어보자.
htpasswd관련 패키지가 설치되어있지 않다면 설치하고 아래 명령을 실행하도록 한다.
1 | sudo htpasswd -B <파일경로> <만들계정> |
명령어를 실행하면 패스워드를 물어보고 계정이 만들어진다.
이제 잘되는지 확인하는 일만 남았다.
1 | docker-compose up -d |
docker-compose 를 통해서 container를 데몬으로 띄운다.
접속은 브라우저나 curl 원하는 형태로 확인이 가능하다.
1 | curl -u <계정명>:<패스워드> https://.... |
정상적으로 Push, Pull이 되는지 확인해보자
1 | docker pull hello-world |
Push가 되었다면 <Registry URL>/v2/_catalog
로 접속해서 Repositories 목록에서 확인할 수 있다.