반응형
개요
구성환경
Docker version 19.03.5, registry 2.7.1
1. 인증 사용자/패스워드 생성
shell> mkdir /opt/registry/auth/ => htpaswd 파일이 저장될 디렉토리 shell> docker run --entrypoint htpasswd registry:2.7.1 -Bbn "user1" "password123" > /opt/registry/auth/htpasswd |
2. Registry 서버 인증을 사용하여 기동
docker run -d \ --restart=always \ --name registry \ -v /opt/registry/certs:/certs \ -v /opt/registry/auth:/auth \ -e REGISTRY_AUTH=htpasswd \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -e REGISTRY_STORAGE_DELETE_ENABLED=true \ -p 443:443 \ registry:2.7.1 |
3. 인증을 이용하여 이미지 업로드
- 인증 정보가 없어 업로드가 되지 않는다.
shell> docker push registry.hoya.com/ubuntu:17.04 The push refers to repository [registry.hoya.com/ubuntu] 3ff70ce53dac: Preparing b8e5935ae7cc: Preparing ba76b502dc9b: Preparing 803030df23c1: Preparing db8686e0ca43: Preparing no basic auth credentials shell> |
- docker login 명령어로 Private Registry의 인증정보를 생성한다.
shell> docker login registry.hoya.com => Private Registry에 로그인 Username: user1 Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded shell> cat ~/.docker/config.json => 로그인 정보가 $HOME/.docker/config.json 파일에 저장됨 { "auths": { "registry.hoya.com": { "auth": "dXNlcjE6cGFzczc1NTc=" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.5 (linux)" } } shell> docker push registry.hoya.com/ubuntu:17.04 => 이제 업로드를 해보자 The push refers to repository [registry.hoya.com/ubuntu] 3ff70ce53dac: Pushed b8e5935ae7cc: Pushed ba76b502dc9b: Pushed 803030df23c1: Pushed db8686e0ca43: Pushed 17.04: digest: sha256:213e05583a7cb8756a3f998e6dd65204ddb6b4c128e2175dcdf174cdf1877459 size: 1357 shell> curl --user user1:password123 -X GET https://registry.hoya.com/v2/_catalog => repository 목록 조회 {"repositories":["ubuntu"]} |
4. 트러블슈팅
4.1 우분투에서 docker login 시 아래와 같은 오류 발생
증상)
shell> docker login registry.hoya.com Username: user1 Password: Error saving credentials: error storing credentials - err: exit status 1, out: `The connection is closed` |
조치 : pass 패키지를 설치한다.
shell> apt install pass |
Private registry 구성 #2 - TLS 구성
반응형
'가상화 > Kubernetes' 카테고리의 다른 글
[kubernetes] 인그레스(Ingress)를 사용하여 HTTP(S) 부하 분산기 구성 #1 - HTTP 부하 분산 (0) | 2020.04.05 |
---|---|
[Docker] docker-compose 활용 (0) | 2020.04.04 |
[Docker] Private registry 이미지 삭제 (4) | 2020.04.02 |
[kubernetes] NFS 구성 (0) | 2020.04.01 |
[Docker] Priviate registry 구성 #2 - TLS 구성 (0) | 2020.03.31 |