자바/MSA

Docker Registry

UroJem 2024. 1. 8. 01:12

Docker Registry는 Docker image 저장소이다.

생성된 Docker image를 registry에 업로드 하면 나중에 필요할 때 registry에서 내려받아서 컨테이너를 실행할 수 있다.

 

보통 registry는 배포할 때도 사용되지만 백업이나 롤백을 진행할 때도 유용하게 사용된다.

예를들어 새롭게 변경된 버전으로 배포를 진행할 때 기존 컨테이너를 이미지로 만들어서 registry에 업로드 해놓고 기존 컨테이너를 삭제하고 새로운 버전 이미지로 컨테이너를 실행해서 버전 업그레이드 패치를 진행하기도 한다.

registry는 저장소이지만 사용하기에 따라 용도가 다양할 수 있다.

 

 

Docker Registry 설치

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

 

docker registry 이미지를 내려받고 컨테이너까지 실행하는 명령어.

포트 포워딩 5000번. --restart always 옵션으로 도커가 실행될 때 자동으로 컨테이너가 실행된다.

 

 

Docker Registry 관리 웹 페이지 설치

docker run -d -it -p 18050:8080 --name registry-web --link registry -e REGISTRY_URL=http://registry:5000/v2 --restart always -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web
  • -p: 컨테이너 내부에서 8080 포트로 띄워지는걸 외부에서 18050 번호로 포트 포워딩
  • --link: 컨테이너 내부 간 통신을 위해 추가한 옵션으로 registry web과 registry 컨테이너와 통신하기 위해 추가
  • -e: 환경변수 추가
    • REGISTRY_URL: docker registry web이 띄워지기 위해 필요한 registry web url 주소. http://registry:5000번은 컨테이너 내부 통신할 때 ip 대신 컨테이너명을 통해 통신하기 때문에 docker registry의 컨테이너명 사용
    • REGISTRY_NAME: docker registry web이 띄워지기 위해 필요한 registry web 이름

 

localhost:18050으로 접속하면 docker registry의 이미지가 어떤 것들이 저장되어  있는지 볼 수 있다.

 

 

 

item-service 컨테이너 이미지 저장

docker commit -a "test" -m "commit test" item-service localhost:5000/item-service-image-test
  • docker commit: 컨테이너를 이미지로 만드는 명령어
  • -a: 저작자
  • -m:  코멘트
  • item-service: 이미지로 만들 컨테이너명
  • localhist:5000/item-service-image-test: 이미지 명. 이미지명 앞에 localhost:5000번은 registry image를 푸시하려면 이미지명 앞에 registry url이 반드시 들어가야 한다.

 

docker push localhost:5000/item-service-image-test

docker push 명령어에 이름에 docker registry url이 붙어있는 이미지를 작성하면 docker registry url로 이미지가 업로드 된다.

추후 이 이미지를 내려받고 싶은 때는 docker pull 명령어를 통해 내려받을 수 있다.

 

 

 

https://www.inflearn.com/course/java-msa-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%A4%EC%8A%B5/dashboard

 

Java 마이크로서비스(MSA) 프로젝트 실습 강의 - 인프런

Java SpringCloud와 여러 오픈소스를 연동하여 마이크로서비스를 구축하는 세미 프로젝트를 경험해보실 수 있습니다. 마이크로서비스 구축 경험을 해보고 싶으시다면 이 강의를 추천할게요!, 마이

www.inflearn.com