- Published on
도커 레지스트리 구축
- Authors
- Name
- 신주용
도커 레지스트리란, 도커 이미지를 저장하고 배포할 수 있는 무상태성, 고확장성 서버사이드 애플리케이션1입니다.
GitHub처럼 도커 이미지를 저장할 수 있는 Docker Hub라는 온라인 저장소가 있습니다. 기존에는 무료로 사용하던 유저도 제한 없이 이미지를 업로드 할 수 있었지만 2020년 11월 1일부터 정책이 변경되었습니다2. 새로 바뀐 정책에 따르면, free Docker account user의 이미지는 6개월간 메니페스트를 푸시하거나 풀하지 않은 inactivity 상태가 지속되면 삭제3됩니다.
이 정책은 최근에 바뀐 것이고, 원래 레지스트리를 사용하는 목적은
- 이미지가 저장되는 위치를 제어하거나(웹이 아닌 조직 내 서버 등)
- 이미지 배포 파이프라인을 완전히 소유하거나
- 이미지 저장 및 배포를 사내 개발 워크플로우에 긴밀하게 통합하기 위해
이렇게 도커 공식 문서1는 설명합니다.
그래서 개인 컴퓨터에 도커 레지스트리를 구축해보겠습니다. 저는 라즈베리 파이 3B+ 라즈비안 OS에서 진행했습니다.
레지스트리 이미지를 가져옵니다.
docker run
명령어로 레지스트리 컨테이너를 만듭니다.각 옵션의 의미는 다음과 같습니다.
--name [container name]
-d(detach)
--restart=[when the container restart]
-p [external]:[internal]
-v [local path]:[container path]
[image name]:[tag]
레지스트리가 잘 동작하는지 테스트 해봅니다. 아무 이미지 하나를 가져온 다음, 태그를 생성합니다.
docker tag [original image] [host addr]:[port]/[image name]:[tag]
입니다.태그한 이미지를 내 레지스트리에 올리고 확인합니다.
이미지를 삭제한 후, 레지스트리에서 가져와봅니다.
Footnotes
"Docker Registry". docs.docker.com. https://docs.docker.com/registry/ (accessed Feb. 20, 2021). ↩ ↩2
D. Kim. "도커 허브, 미사용 이미지 보존 기간 6개월로 제한". www.44bits.io. https://www.44bits.io/ko/post/news--docker-hub-image-retention-limit (accessed Feb. 20, 2021). ↩
J. Morlhon. "Docker Hub Image Retention Policy Delayed, Subscription Updates". www.docker.com. https://www.docker.com/blog/docker-hub-image-retention-policy-delayed-and-subscription-updates/ (accessed Feb. 20, 2021). ↩
"Resource Consumption Updates FAQ". www.docker.com. https://www.docker.com/pricing/resource-consumption-updates (accessed Feb. 20, 2021). ↩
J. Morlhon. "Scaling Docker’s Business to Serve Millions More Developers: Storage". www.docker.com. https://www.docker.com/blog/scaling-dockers-business-to-serve-millions-more-developers-storage/ (accessed Feb. 20, 2021). ↩
hihello. "Docker Local Registry 구축". hihellloitland.tistory.com. https://hihellloitland.tistory.com/63 (accessed Feb. 20, 2021). ↩
HiSEON. "Docker Registry 구축 방법". hiseon.me. https://hiseon.me/linux/docker-registry/ (accessed Feb. 20, 2021). ↩