持续集成与持续交付 - 启动私有Registry

163 阅读1分钟

启动私有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
$