안녕하세요 코코넛입니다.
이번에는 여러분들이 사용하는 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 => 이 파일은 어느 위치에서 작성이 되어도 괜찮습니다
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 설치 방법과 사용법이었습니다.