개요
docker image는 저장 관리 해주는 사설 private registgry 구축 해보겠습니다.
구성
registry : docker image를 보관하는 용도
joxit/docker-registry-ui : registry를 web에서 볼수 있게 해주는 UI
실행
아래 site에서 "Recommended Docker Registry Usage" 부분을 찾아서 image를 push 가능하게 설명하면 하면 끝입니다.
https://hub.docker.com/r/joxit/docker-registry-ui
docker-compose.yaml 수정 버전
docker registery에 push 하기위해서 registry-server에 docker registry에서 사용하는 port를 portforwarding 해줍니다.
추가 설정
ports:
- 5000:5000
최종 YAML
version: '3.8'
services:
registry-ui:
image: joxit/docker-registry-ui:main
restart: always
ports:
- 80:80
environment:
- SINGLE_REGISTRY=true
- REGISTRY_TITLE=Docker Registry UI
- DELETE_IMAGES=true
- SHOW_CONTENT_DIGEST=true
- NGINX_PROXY_PASS_URL=http://registry-server:5000
- SHOW_CATALOG_NB_TAGS=true
- CATALOG_MIN_BRANCHES=1
- CATALOG_MAX_BRANCHES=1
- TAGLIST_PAGE_SIZE=100
- REGISTRY_SECURED=false
- CATALOG_ELEMENTS_LIMIT=1000
container_name: registry-ui
registry-server:
image: registry:2.8.2
restart: always
ports:
- 5000:5000
environment:
REGISTRY_HTTP_HEADERS_Access-Control-Origin: '[http://registry.example.com]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
REGISTRY_HTTP_HEADERS_Access-Control-Credentials: '[true]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]'
REGISTRY_STORAGE_DELETE_ENABLED: 'true'
volumes:
- ./registry/data:/var/lib/registry
container_name: registry-server
docker-compose 실행
아래 명령으로 실행합니다.
docker-compose up -d
접속
loacalhost:80 으로 접속하면 아래와 같이 화면이 보입니다.
IMAGE PUSH
Image 생성
image를 올리기 위해서는 localhost:5000/ 앞에 붙여서 image 이름을 다시 변경후 push 하면 올라갑니다.
docker tag 원본이미지(:tag) {리모트주소:포트/}{프로젝트)/이미지(:tag)
Ex) docker tag busybox:latest localhost:5000/busybox:latest
Image push
docker push localhost:5000/busybox:latest
Registry 등록된 Image 확인
Registry 등록된 Image Pull
docker pull localhost:5000/busybox
향후 서비스를 위해 해야 할것
IP에 대한 DNS 처리하면 해주면 될 듯 싶습니다.
정리
docker image관리하는 registry는 UI를 제공하지 않기 때문에 joxit/docker-registry-ui 같은 tool을 추가록 설치해서 써야 한다.
'Cloud > Docker' 카테고리의 다른 글
8. Dockerfile 과 Docker-compose.yml (0) | 2020.07.09 |
---|---|
7. Docker - cheat sheet (0) | 2019.05.03 |
6. Docker cluster - swarm (리눅스 용) (0) | 2019.02.28 |
5. Docker Image 만들기 / 삭제 (리눅스 용) (0) | 2019.02.19 |
4. Docker 네트워크 (리눅스 용) (0) | 2019.01.31 |