启动私有Registry
启动
$ docker run -d -p 5000:5000 -v /root/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.test.training.katacoda.com.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.test.training.katacoda.com.key -v /opt/registry/data:/var/lib/registry --name registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
ddad3d7c1e96: Pull complete
6eda6749503f: Pull complete
363ab70c2143: Pull complete
5b94580856e6: Pull complete
12008541203a: Pull complete
Digest: sha256:bac2d7050dc4826516650267fe7dc6627e9e11ad653daca0641437abdf18df27
Status: Downloaded newer image for registry:2
002a8003ff373165a21ade774465424c7c8176a1ee0413194da4ecb83cc26ff2
为了加固Registry,我们使用SSL证书与NGINX来管理SSL终端。
$ ls /root/certs/
registry.test.training.katacoda.com.crt registry.test.training.katacoda.com.key rootCA.key
registry.test.training.katacoda.com.csr rootCA.crt rootCA.srl
测试:通过https访问Registry
$ curl -i https://registry.test.training.katacoda.com:5000/v2/
HTTP/1.1 200 OK
Content-Length: 2
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Tue, 27 Apr 2021 04:54:05 GMT
{}
将私有仓库上的拉取下来,然后打tag重新上传。注意:只有不同的layer才会被上传。
$ docker pull redis:alpine; docker tag redis:alpine registry.test.training.katacoda.com:5000/redis:alne
alpine: Pulling from library/redis
540db60ca938: Pull complete
29712d301e8c: Pull complete
8173c12df40f: Pull complete
0be901b3c77d: Pull complete
c33773bf45b4: Pull complete
6eeb0c30f7e7: Pull complete
Digest: sha256:f9577ac6e68c70b518e691406f2bebee49d8db22118fc87bad3b39c16a1cb46e
Status: Downloaded newer image for redis:alpine
docker.io/library/redis:alpine
$
$ docker push registry.test.training.katacoda.com:5000/redis:alpine
The push refers to repository [registry.test.training.katacoda.com:5000/redis]
dcdb494088be: Pushed
180b5179d767: Pushed
cdd2267f91e9: Pushed
33292fe7ceb9: Pushed
d2c4a6adc529: Pushed
b2d5eeeaba3a: Pushed
alpine: digest: sha256:1e194b7298d21bcbb4531af65db5fcb830b487da8d595610bad3fb05f3e67c62 size: 1571
将本地的删除。在未来某个时间点需要使用时,重新docker pull下来使用
$ docker images | grep redis
redis alpine 554d20f20365 6 days ago 32.3MB
registry.test.training.katacoda.com:5000/redis alpine 554d20f20365 6 days ago 32.3MB
redis latest 62f1d3402b78 6 months ago 104MB
$
$ docker rmi redis:alpine registry.test.training.katacoda.com:5000/redis:alpine
Untagged: redis:alpine
Untagged: redis@sha256:f9577ac6e68c70b518e691406f2bebee49d8db22118fc87bad3b39c16a1cb46e
Untagged: registry.test.training.katacoda.com:5000/redis:alpine
Untagged: registry.test.training.katacoda.com:5000/redis@sha256:1e194b7298d21bcbb4531af65db5fcb830b487da8d595610bad3fb05f3e67c62
Deleted: sha256:554d20f2036575e9d396d422c1569277738aa170aefcf88febbf08442cee0a08
Deleted: sha256:a0288b7b5f99b210baea85a94c3c506d8c5755f8a87013551c164905f4f3459b
Deleted: sha256:8553532b9b9a7415d79bc862460d02ea90757caa77a866984f0a5e2e87735336
Deleted: sha256:850602acc189dfac17ec4d2aa3612a4bc9837cc133efa26f76fb4f0f20819a00
Deleted: sha256:d6cd83226886b0015ae158eaa533d2054970b6cd7353b69027b73eca8b19f7c9
Deleted: sha256:4393f4a23174c8219b87411a6f1d20f7a7b1bcc5cd5ee2a3e8994bfc7095c614
Deleted: sha256:b2d5eeeaba3a22b9b8aa97261957974a6bd65274ebd43e1d81d0a7b8b752b116
$
$ docker images | grep redis
redis latest 62f1d3402b78 6 months ago 104MB
$
$ docker pull registry.test.training.katacoda.com:5000/redis:alpine
alpine: Pulling from redis
540db60ca938: Pull complete
29712d301e8c: Pull complete
8173c12df40f: Pull complete
0be901b3c77d: Pull complete
c33773bf45b4: Pull complete
6eeb0c30f7e7: Pull complete
Digest: sha256:1e194b7298d21bcbb4531af65db5fcb830b487da8d595610bad3fb05f3e67c62
Status: Downloaded newer image for registry.test.training.katacoda.com:5000/redis:alpine
registry.test.training.katacoda.com:5000/redis:alpine
$
$ docker images | grep redis
registry.test.training.katacoda.com:5000/redis alpine 554d20f20365 6 days ago 32.3MB
redis latest 62f1d3402b78 6 months ago 104MB
$