반응형

(Docker)도커 - (Private Registry) 도커 개인 저장소에 저장(push) 및 가져오기(pull)

 

도커 이미지를 저장하고, 다른 호스트에서 가져다가 사용하는 방법에는 3가지 방법이 있습니다.

  1.  docker save 명령어로 저장 및 docker load 명령으로 로드
  2.  (Docker Hub) 도커 허브 사이트에 저장(push) 및 가져오기(pull)
  3.  개인 저장소(Private Registry) 컨테이너를 만들고 그곳에 저장(push) 및 가져오기(pull)

이번 포스팅에서는 지난 포스팅에 이어서 3번 방법을 포스팅하겠습니다.

 

 

CentOS에 도커 개인 저장소(Private Registry) 컨테이너 실행

먼저 CentOS에 이전 포스팅에서 작업했던 컨테이너와 이미지를 모두 제거해주고 깨끗한 상태에서 시작합니다.

비어있는 도커 이미지, 컨테이너

 

도커 허브에는 개인 저장소(Registry) 컨테이너 이미지가 존재합니다.

개인저장소 registry

 

run 명령어로 이미지를 다운로드하고 실행하도록 합니다.

(--restart 옵션은 컨테이너가 종료돼도 자동으로 재시작하는 옵션)

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

registry 컨테이너 run

 

도커 허브에 로그인 후, 이전 포스팅에서 레파지토리에 push 해두었던 kkk1318/nodejs:ver_2 이미지를 pull 하고 이미지 목록을 확인합니다.

$ docker login

$ docker pull kkk1318/nodejs:ver_2

도커허브 로그인, 도커 pull, 이미지 목록 확인

 

이제 다운로드한 kkk1318/nodejs:ver_2 이미지를 (Private registry) 개인 저장소로 push 하기 위해,

먼저 tag 명령어로 이미지의 이름을 localhost:8000/nodejs로 변경해 줍니다.

($ docker tag 이전이미지명:tag 바꿀이미지명:tag)

$ docker tag kkk1318/nodejs:ver_2 localhost:5000/nodejs:ver_2

도커 이미지명 변경

 

이제 push 명령으로 (Private Registry) 개인 저장소인 localhost:5000 포트로 넣어 줍니다.

$ docker push localhost:5000/nodejs:ver_2

개인저장소로 push

 

이제 호스트의 localhost:5000/nodejs:ver_2 이미지를 삭제합니다.

$ docker rmi localhost:5000/nodejs:ver_2

호스트에서 이미지삭제

 

이제 (Private Registry) 개인 저장소에서 이미지를 pull 합니다.

인터넷을 통해서 다운로드하는 것이 아닌 같은 저장장치에서 가져오기 때문에 매우 빠르게 이미지가 생성됩니다.

$ docker pull localhost:5000/nodejs:ver_2

개인저장소에서 이미지 pull

 

도커 허브를 공짜 정책으로 이용하면 비공개 레파지토리 공간을 1개밖에 생성할 수 없습니다.

하지만 (Private Registry) 개인 저장소를 이용한다면 저장장치 공간만큼 이미지 저장이 가능합니다.

 

저는 자주 사용하는 이미지는 호스트에 보관하시고, 오랫동안 사용하지 않고 보관할 이미지들을 개인 저장소에 보관하고 있습니다.

 

마지막으로 (Private Registry) 개인 저장소에 저장되어 있는 이미지 목록과,

이미지 명의 태그 목록을 보는 명령를 입력하여 확인합니다.

$ curl localhost:5000/v2/_catalog
$ curl localhost:5000/v2/nodejs/tags/list

이미지목록, 이미지의 태그목록

(Docker)도커 전체보기

 

'(Docker)도커' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형