프라이빗 Docker Registry를 사용하는 방법
레지스트리 로그인
docker login -u admin https://dockerhub.scbyun.com:5000
docker login -u admin https://dockerhub.scbyun.com:5000
$ docker login -u admin https://dockerhub.scbyun.com:5000
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
이미지 다운로드(docker pull)
docker pull dockerhub.scbyun.com:5000/apache-php:latest
docker pull dockerhub.scbyun.com:5000/apache-php:latest
$ docker pull dockerhub.scbyun.com:5000/apache-php:latest
latest: Pulling from apache-php
2d473b07cdd5: Already exists
1c21b49fc204: Pull complete
ebb71476cd11: Pull complete
7c0c0d52b79c: Pull complete
Digest: sha256:e8b8bfee0020b8ea9b782446c067e9069e238c9dee4dd3870d3777571b4f586b
Status: Downloaded newer image for dockerhub.scbyun.com:5000/apache-php:latest
dockerhub.scbyun.com:5000/apache-php:latest
이미지 업로드(docker push)
docker push dockerhub.scbyun.com:5000/apache-php:latest
docker push dockerhub.scbyun.com:5000/apache-php:latest
$ docker push dockerhub.scbyun.com:5000/apache-php:latest
The push refers to repository [dockerhub.scbyun.com:5000/apache-php]
0d2cbbf556cd: Layer already exists
9e2c1ea8dc21: Layer already exists
174f56854903: Layer already exists
latest: digest: sha256:e8b8bfee0020b8ea9b782446c067e9069e238c9dee4dd3870d3777571b4f586b size: 3265
registry 내부의 repository 정보 조회
curl <ID>:<PASSWORD>@<REGISTRY URL:PORT>/v2/_catalog
curl https://admin:admin@dockerhub.scbyun.com:5000/v2/_catalog
$ curl https://admin:admin@dockerhub.scbyun.com:5000/v2/_catalog
{"repositories":["apache-php","centos"]}
repository에 대하여 tag 정보 조회
curl <ID>:<PASSWORD>@<REGISTRY URL:PORT>/v2/<IMAGE NAME>/tags/list
curl https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/tags/list
curl https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/tags/list
{"name":"apache-php","tags":["0.0.1","latest"]}
매니페스트 정보 확인(content digest 조회)
curl -v -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
<ID>:<PASSWORD>@<REGISTRY URL:PORT>/v2/<IMAGE NAME>/manifests/<TAG NAME> 2>&1 \
| grep Docker-Content-Digest | awk '{print ($3)}'
- curl 옵션
- -v, --verbose
- -H, --header
curl -v -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/manifests/0.0.1 2>&1 \
| grep Docker-Content-Digest | awk '{print ($3)}'
$ curl -v -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
> https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/manifests/0.0.1 2>&1 \
> | grep Docker-Content-Digest | awk '{print ($3)}'
sha256:f9d01a495f8e1a5d2dc7f04c98be5f05ab2f0390888e511a53d0fdc0bbfde4e3
매니페스트 다이제스트를 통한 이미지 삭제(이미지 삭제)
curl -v -XDELETE <ID>:<PASSWORD>@<REGISTRY URL:PORT>/v2/<IMAGE NAME>/manifests/<DIGEST>
- curl 옵션
- -v, --verbose
- -X, --request COMMAND Specify request command to use
- --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
- --retry NUM Retry request NUM times if transient problems occur
- --retry-delay SECONDS When retrying, wait this many seconds between each
- --retry-max-time SECONDS Retry only within this period
curl -v -XDELETE https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/manifests/sha256:e8b8bfee0020b8ea9b782446c067e9069e238c9dee4dd3870d3777571b4f586b
$ curl -v -XDELETE \
https://admin:admin@dockerhub.scbyun.com:5000/v2/apache-php/manifests/sha256:e8b8bfee0020b8ea9b782446c067e9069e238c9dee4dd3870d3777571b4f586b
* About to connect() to dockerhub.scbyun.com port 5000 (#0)
* Trying 211.239.123.212...
* Connected to dockerhub.scbyun.com (211.239.123.212) port 5000 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=dockerhub.scbyun.com
* start date: Mar 17 05:36:28 2022 GMT
* expire date: Jun 15 05:36:27 2022 GMT
* common name: dockerhub.scbyun.com
* issuer: CN=R3,O=Let's Encrypt,C=US
* Server auth using Basic with user 'admin'
> DELETE /v2/apache-php/manifests/sha256:e8b8bfee0020b8ea9b782446c067e9069e238c9dee4dd3870d3777571b4f586b HTTP/1.1
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.29.0
> Host: dockerhub.scbyun.com:5000
> Accept: */*
>
< HTTP/1.1 202 Accepted
< Docker-Distribution-Api-Version: registry/2.0
< Date: Mon, 28 Mar 2022 09:28:45 GMT
< Content-Length: 0
<
* Connection #0 to host dockerhub.scbyun.com left intact
GC(Garbage Collection)
docker-compose exec registry registry garbage-collect /etc/docker/registry/config.yml
docker-compose exec registry registry garbage-collect /etc/docker/registry/config.yml
$ docker-compose exec registry registry garbage-collect /etc/docker/registry/config.yml
apache-php
apache-php: marking manifest sha256:c7c959a30104de547d09bdd32ff7d205917c44d100af2651142dc08cf5556ea2
apache-php: marking blob sha256:31723d898881b03d0938162fcb354bb37dbde8d0a908b471e04872a79f960f86
apache-php: marking blob sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc
...
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/29/2994e53ea3cd3d343611a5cc6864afd9ac0a78526e6e23795a06466082dee6a9 go.version=go1.16.15 instance.id=4730ce40-112b-4bbf-8413-17be55568a55 service=registry
blob eligible for deletion: sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/a3/a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4 go.version=go1.16.15 instance.id=4730ce40-112b-4bbf-8413-17be55568a55 service=registry
'리눅스' 카테고리의 다른 글
paste 명령어 (0) | 2022.03.29 |
---|---|
[리눅스] 젠킨스 빌드 이름 및 설명 설정자(Build Name and Description Setter) 플러그인 (0) | 2022.03.28 |
CentOS 7에 Node.js와 npm을 설치하는 방법 (0) | 2022.03.25 |
[리눅스] sentry 설치 (0) | 2022.03.24 |
CentOS 7에서 ISO 이미지를 생성하기(mkisofs) (0) | 2022.03.24 |