Synology NAS에 Docker Private Registry 설정부터 도메인 연결까지

이재하·2024년 11월 11일
0
post-thumbnail

Welcome to Jaehai.Opslog


안녕하세요! 넓은 스펙트럼을 바탕으로 전체적인 그림을 보는 Ops Engineer 이재하입니다.

이번 글에서는 Synology NAS에서 Docker Private Registry를 생성하고,
docker.jaehai.com처럼 Private Registry에서 docker image pull 받을 때 개인 도메인을 사용할 수 있도록 설정해보겠습니다.

1. Container Manager 설치


  • Synology NAS 로그인 후 패키지 센터에서 Container Manager를 설치해주세요.

2. 공유 폴더 생성


  • Container Manager의 Auth 정보 및 Docker 이미지를 저장하기 위한 폴더를 생성해줍니다.
    1. docker 공유 폴더 생성
    2. auth 폴더 생성
      Dockerhub처럼 로그인 해야만 사용할 수 있게 로그인 아이디와 비밀번호가 저장될 폴더입니다.
    3. var_lib_registry 폴더 생성
      Docker Image가 실질적으로 저장될 폴더입니다.

3. registry 이미지 실행


  1. 메인 메뉴에서 Container Manger 실행
  2. 레지스트리 이동 후 registry 이미지를 컨테이너로 실행
  3. 자동 재시작 활성화 켜기
  4. 포트 설정
    1. 로컬 포트 : 자유
    2. 컨테이너 포트 : 5000
  5. 볼륨 설정(로컬 → 컨테이너)
    1. /docker/auth → /auth (rw)
    2. /docker/var_lib_registry → /var/lib/registry (rw)

4. 도메인 설정


  1. Route53 등에서 A Record를 NAS 외부 IP로 설정해주세요.
    • 해당 세션을 다루기엔 각자의 상황이 너무 다르기 때문에 넘기겠습니다.
  2. Synology NAS에서 제어판 실행
  3. 제어판 → 보안 → 인증서에서 Private Registry를 사용할 도메인을 추가

5. Nginx(routing) 설정


  1. 제어판 → 로그인 포털 → 역방향 프록시 클릭
  2. 역방향 프록시 생성
    외부에서 특정 도메인(예 : docker.jaehai.com)으로 접속 했을 때 Registry로 Redirect 되도록 설정
    - 이름 : HTTP_docker
    - 소스
    - 프로토콜 : HTTP
    - 호스트 이름 : 예시 도메인
    - 포트 : 80
    - 엑세스 제어 프로파일 : 구성되지 않음
    - 대상
    - 프로토콜 : HTTP
    - 호스트 이름 : localhost
    - 포트 : Container Manager에서 설정했던 로컬 포트
    - 이름 : HTTPS_docker
    - 소스
    - 프로토콜 : HTTPS
    - 호스트 이름 : 예시 도메인
    - 포트 : 443
    - HSTS 활성화 : 체크
    - 엑세스 제어 프로파일 : 구성되지 않음
    - 대상
    - 프로토콜 : HTTP
    - 호스트 이름 : localhost
    - 포트 : Container Manager에서 설정했던 로컬 포트

6. 테스트


  • 브라우저에서 컨테이너Registry주소/v2/_catalog 확인
  • 접속 된다면 성공

마무리


이렇게 Synology NAS에 Docker Private Registry 설정부터 도메인 연결까지 하는 방법을 기록해보았습니다.만약 안되시거나 잘 모르겠는 부분이 있다면 댓글 남겨주시면 최대한 답변 해드리겠습니다.

추후에 모든 기술 블로그는 jaehai.com/post에 업로드 될 예정입니다.

제 글이 도움이 되셨다면 ops-jaeha Github 팔로우 부탁드리겠습니다!

ops-jaeha - Overview

profile
누군가는 해야만 하는 일을 하는사람

0개의 댓글