Nexus Docker Registry를 구축하자

mingg·2024년 2월 14일
0

쿠버네티스

목록 보기
7/9


이미지를 저장할 도커 레지스트리를 구축해야한다.

nuclio function은 일종의 이미지로 배포과정에서 이미지를 레지스트리에 push하고 pull하는 작업을 거치게 되는데, 해당 작업을 하기 위해서는 도커 레지스트리가 필요하다.

도커레지스토리를 구축하는 방식은 두가지가 있다.

  • • Registry 이미지를 기반으로 로컬 환경에서 Docker Registry를 구축하는 방식
  • • Nexus를 활용하여 Private Docker Registry를 구축하는 방식

나는 Nexus를 활용하여 Private Docker Registry를 구축하려고 한다.

Nexus?

Nexsus는 현재 가장 인기 있는 오픈 소스 Repository Manager로, Docker, Helm,Pypi,Maven 등 다양한 Format을 지원한다.

Nexus 컨테이너 생성

mkdir nexus-data
docker run --name nexus -d -p 5000:5000 -p 8081:8081 -v /nexus-data:/nexus-data -u root sonatype/nexus3

5000포트는 도커 레포지토리를 접근하기 위한 포트
8081은 웹 UI를 통해 접근하기 위한 포트.


기본적으로 Nexus는 http://localhost:8081에서 실행된다

→ 웹으로 접속!!

최초 admin 계정으로 로그인을 해야하고

admin 비밀번호는 /nexus-data/admin.password 에서 확인한다.

cat /nexus-data/admin.password

비밀번호는 알아서 각자 수정하시길..!

nexus에서 blob store 생성

Blob Stores에서 docker-hosted, docker-hub를 생성한다.

Blob store는 Proxy repository 나 hosted repository를 통해 배포된 바이너리를 저장하는 저장소

docker hosted 생성

docker-hosted는 개인이 만든 이미지를 저장하는데 사용한다.

5000번 포트로 통신하고 client는 도커 레지스토리의 API를 통해 interact한다.

  • HTTP 영역 5000 설정
  • Enable Docker V1 API check
  • Blob store docker-hosted 선택

docker(proxy) repository 생성

Realms 설정
docker repository에 접근할 수 있는 인증을 추가한다.

Docker Authentication에서 제공하는 기본적인 인증 권한을 사용해 익명으로 docker pull을 허용

  • Docker Bearer Token Relam 추가

docker image pull & push

  • docker insecure registry 추가

모든 워커노드에서 Nexus repository에 접근을 허용하기 위한 설정을 진행.

공인 TLS 인증이 되지 않은 Private repository에 HTTP접근을 허용하기 위한 설정이다.

sudo gedit /etc/docker/daemon.json

/etc/docker/daemon.json에 아래 내용을 추가한다.

"insecure-registries" : ["저장소의 경로:5000"]
  • docker login 명령어를 통해 Nexus로 로그인
# 기존 busybox 이미지를 가지고 해볼거임
docker tag 3f57d9401f8d localhost:5000/busybox:v20240207
  • push

docker push localhost:5000/busybox:v20240207


profile
혼자 이것저것 해보는걸 즐깁니다..!

0개의 댓글