[Docker] 레지스트리 구축

Na young·2024년 1월 31일
0

Docker

목록 보기
4/8

Private registry 구축의 필요성

기업 내부 프로젝트용 이미지는 public에 올리지 않으므로.

도커 허브 서버에서 유료로 이용할 수 있으나 도커허브에 공개된 registry 라는 공식 이미지를 이용하여 구축한다


registry 구축

registry 이미지를 pull로 받아오기

$ docker pull registry


볼륨 설정하기

VOLUME
호스트의 저장폴더와 컨테이너의 저장폴더를 동기화 시키는 것.

$ docker run -d -v /유저명/registry_data:/var/lib/registry -p 5000:5000 --restart=always --name=private-registry registry
  • 호스트의 /home/유저명/registry_data 폴더에 있는 파일을 즉시 컨테이너의 /var/lib/registry 폴더와 동기화 시키고
  • 포트 5000번으로 5000번 포트에 대한 바인딩을
  • 재시작을 하도록 하는 registry 컨테이너를 띄운다
$ docker image history registry


EXPOSE가 노출시키는 포트가 5000번이고, VOLUME 경로를 확인할 수 있다


저장된 요소 검색하기

curl -X GET http://[hostIPv4주소]:5000/v2/_catalog


사설 repo의 내부망 주소를 태그로 붙이기

$ docker image tag [사설repo:version] [hostIPv4주소]:5000/[사설repo:version]


push

$ docker push [hostIPv4주소]:5000/[사설repo:version]

  • 도커 엔진이 신뢰할 수 없는 저장소이기에 거절 당한다

저장소로 등록하기

$ sudo vi /etc/init.d/docker
  • 31번 라인에 DOCKER_OPTS=--insecure-registry [HostIPv4주소]:5000 을 추가한다
$ sudo vi /etc/docker/daemon.json
  • {"insecure-registries": ["HostIPv4주소"]} 입력

$ sudo systemctl restart docker.service
  • 갱신을 위한 도커 재시작

push

$ docker push [hostIPv4주소]:5000/[사설repo:version]

  • Push가 잘 된 것을 확인할 수 있다

profile
개발어린이

0개의 댓글