안녕하세요 코코넛입니다.

이번에는 여러분들이 사용하는 docker image를 private하게 관리(image push, pull, docker auth 등)

할 수 있는 docker private registry를 Ubuntu linux에 설치하는 설치방법과

간단한 사용법을 다루겠습니다.


Ubuntu linux에 설치되어 있는 docker를 기준으로 설치를 진행하였습니다.

docker-compose를 사용하여 registry 설치를 진행하였으며,

아래의 docker-compose yaml파일 형식의 script를 이용하여 설치를 간단하고 빠르게 진행할 수 있습니다.

 

docker-compose.yml => 이 파일은 어느 위치에서 작성이 되어도 괜찮습니다


version: “3”
services:
  registry:
    restart: always      # 도커가 시작될 시에 컨테이너 또한 언제나 같이 시작
    image: registry:2     # docker registry image
    ports:
      – 5000:5000     # localhost port : container port – 포트포워딩
    environment:
       REGISTRY_AUTH: htpasswd      # authentication 방식을 htpasswd를 따름
       REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd      # authentication 암호화된 passwd 컨테이너 내에서 지정
       REGISTRY_AUTH_HTPASSWD_REALM: test_realm_name      # authentication 상에서 realm
    volumes:     # docker conainer와 volume 마운트
      – /data/docker_storage:/var/lib/registry
      – /data/auth:/auth

 

htpasswd => /auth 라는 디렉터리를 임의의 생성한 후에 auth 디렉터리 하위 경로에 위치합니다 예: /data/auth/htpasswd

docker 명령어를 통해 htpasswd 파일을 생성합니다.


docker run –entrypoint htpasswd registry:2.7.0  -Bbn test_realm_name test_passwd > /data/auth/htpasswd


위의 인증 파일까지 생성이 되었다면 아래의 명령어를 통해 생성한 docker-compose.yml 을 통해 docker registry를

컨테이너로 생성해 줍니다.


docker-compose.yml이 존재하는 경로 상에서 “docker-compose up -d” 라고 명령어를 실행해 줍니다.


그 다음 docker registry 컨테이너가 정상적으로 생성되었는지 컨테이너 리스트 명령어로 확인합니다.

docker ps | grep registry

컨테이너가 확인되었다면 registry 컨테이너가 생성이 된 것 입니다.

 


이제 생성된 docker private registry에 테스트할 겸 docker image를 push해 봅시다.

docker pull python:3.8

명령어로 python3.8 이미지를 docker hub에서 pull받아 줍니다.

그리고 생성한 docker private registry 에 login 아래의 명령어를 통해 로그인하여 줍니다.

docker login localhost:5000

위에서 생성한 realm과 passwd 를 입력하여 로그인합니다.

 

위에서 pull 받은 python3.8 이미지를 tag 명령어를 이용하여 생성한 registry에 push가 가능하도록 해줍니다.

 

docker tag python:3.8 localhost:5000/python:3.8

 

docker images 명령어를 통해 retag된 image와 tag하기 전의 이미지 2개를 확인할 수 있습니다.

생성한 registry에 아래의 명령어를 입력하여 push합니다.

 


docker push localhost:5000/python:3.8


 

위의 명령어로 성공적으로 docker private registry에 push가 되었다면

 


docker pull localhost:5000/python:3.8


 

명령어를 이용하여 image가 pull이 되는지 확인해 봅니다.

여기까지 간단한 docker private registry  설치 방법과 사용법이었습니다.