Docker Private Registry

🐢 개발자 JiWonLee·2024년 9월 12일

docker

목록 보기
1/1
post-thumbnail

배경

  • 기존 배포의 경우 압축 파일로 배포를 하고, 스크립트 쉘 (startup.sh) 과 같은 파일을 이용해 서비스를 실행한다.
  • 또한, 서비스가 환경에 많은 영향을 받기 때문에 docker를 이용하면 편하게 배포를 할 수 있지 않을까 하다가 docker private registry 라는 것을 발견했다.

사전 준비

  • docker 설치
  • docker-compose 설치

Private Registry 실행 방법

  1. 도커 이미지 다운로드
docker pull registry
  1. Private Registry 실행
docker run --name local-registry \
-d --restart=always \
-p 5000:5000 \
-v /data/registry:/var/lib/registry/docker/registry/v2 \
registry:latest
  • docker run 명령어로 컨테이너 기동
  • --name 은 docker image 이름
  • -d daemon 으로 실행 (백그라운드)
  • -p 5000:5000 registry 실행
  1. https를 사용하지 않을 경우
# /etc/docker/daemon.json
{
	"insecure-registries": ["$HOST_IP:5000"]
}
  1. docker 재시작
systemctl daemon-reload
systemctl restart docker
  • docker는 default로 https로 통신하려 하기 때문에 문제가 발생함.
  • 신뢰할 수 있는 서비스를 설정해준다.

UI 적용하기

  • Private Registry 만 적용해도 사용할 수 있으나 사용자들에게 편한 경험을 제공하기 위해 UI를 제공한다.
  • docker-registry-ui
  1. 통합 docker-compose.yml 작성
# /home/registry
version: '3.8'
services:
  registry:
    image: registry:latest
    restart: always
    environment:
      REGISTRY_STORAGE_DELETE_ENABLED: 'true'
    volumes:
      - ./data:/var/lib/registry
    networks:
      - registry-ui

  ui:
    image: joxit/docker-registry-ui:latest
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=My Private Docker Registry
      - DELETE_IMAGES=true
      - NGINX_PROXY_PASS_URL=http://registry:5000
      - SINGLE_REGISTRY=true
    depends_on:
      - registry
    networks:
      - registry-ui

networks:
  registry-ui:

Private Docker Registry Flow

웹 접속: http://localhost:5000

웹 초기 화면
위의 그림처럼 업로드한 docker image 가 등록된다.
빨간 마크되어있는 부분은 dark, light 모드로 전환할 수 있다.

docker image 상세 화면

웹 상세 화면

  • Size, Tag 및 자세한 정보를 확인할 수 있다.

Image Push/Pull 방법

# docker build 할 때, Image 이름에 웹 주소 추가
docker build -t <host_ip>:5000/[이미지명]:[태그명] [도커파일 위치]

# docker image 생성 후 push
docker push <host_ip>:5000/[이미지명]:[태그명]

# docker image pull
docker pull <host_ip>:5000/[이미지명]:[태그명]

추가적으로, Docker Image를 배포하기 위해 아래의 링크를 참조한다.
https://www.leafcats.com/240

  • tar 파일 생성 후 외부에서 파일을 docker load 명령으로 image를 받는다.
profile
더 나은 내일을 위해 기록하는 기술 블로그

0개의 댓글