mkdir -p ~/docker-registry && cd ~/docker-registry
인증서용 디렉토리 생성
mkdir certs && cd certs
서버 개인 키 및 셀프 사인 인증서 생성 (IP 주소 사용)
여기서 IP 주소는 예시로 192.168.3.14을 사용합니다.
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes \\
-keyout server.key -out server.crt \\
-subj "/C=KR/ST=Seoul/L=Seoul/O=acs7th/OU=IT/CN=192.168.3.14" \\
-addext "subjectAltName = IP:192.168.3.14"
cd ..
docker-compose.yml 파일 생성
services:
registry:
image: registry:latest
restart: always
networks:
- registry-net
volumes:
- ./data:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
- REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory
registry-ui:
image: joxit/docker-registry-ui:latest
restart: always
environment:
- REGISTRY_TITLE=ACS7th Private Registry
- REGISTRY_URL=https://192.168.3.14
networks:
- registry-net
nginx:
image: nginx:alpine
restart: always
ports:
- 443:443
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs/server.crt:/etc/nginx/server.crt
- ./certs/server.key:/etc/nginx/server.key
- ./htpasswd:/etc/nginx/htpasswd
- ./logs:/var/log/nginx
depends_on:
- registry
- registry-ui
networks:
- registry-net
networks:
registry-net:
htpasswd 파일 생성 (사용자 이름과 비밀번호 설정)
apt-get install apache2-utils
htpasswd -cb htpasswd kevin pass123#