本文详细介绍了docker注册表镜像的专业知识,对大家来说非常详细。对大家的学习、培训或者工作都有一定的参考价值,一定要朋友们参考。
简介
我们以前的docker图像存储在Azure的容器注册表中。最近,我们自己建立了一个docker注册表。我们希望将之前存储的Azure容器注册表的docker映像与我们自己的docker注册表共享。
完成这个想法
大家的做法都很简单,低,但是基础可以达到要求。
大家的做法是
然后突然想起来阿里云服务器好像有镜像工具,https://github.com/AliyunContainerService/image-syncerImage-Syncer是docker镜像工具,可以用来进行多对多的镜像仓库共享。适用于现阶段最流行的docker镜像仓库服务。看到详细的介绍就很不错了。如果需要在注册表中间进行镜像,可以试试这个工具。看详细介绍不容易拿到本地盘。从源注册表获取镜像数据信息后,会立即将信息推送到新注册表,效率会高很多。
Docker-RegistryAPI
Docker注册处有一套标准,可以检查https://docs.docker.com/registry/spec/api/'s掌握的大量
获取所有镜像
Dockerregistryv2增加了一个_catalog的api来获取所有图片,v1可以替换为_search。
英语语法如下:
获取/v2/_catalog
默认数字返回多达100条记录,但100不是必需的。总数可以根据主参数n来指定,在分页查询的情况下,可以指定另一个主参数last来指定从上一页返回的最后一张图片。例如,http://example.com/v2/_catalog?.n=20&;last=b
获取镜子的标签
Get/v2/<存储库名称>/tags/list,还可以进行分页查询。类似于上图目录,可以根据N和last完成分页查询加载。
实际 *** 作示例
为了试听,在本地部署了一个用于测试的docker注册表,我在这里使用了httpie进行测试。
获取镜像目录:
启用_catalog套接字以获取镜像目录。
http:5000/v2/_目录
获取镜像的标签目录。
启用标签/列表套接字以获取镜像的标签。
http:5000/v2/busybox/tags/list
http:5000/v2/redis/tags/list
PowerShell脚本
不是所有自动化技术的运维管理都是耍无赖,很可能后面还会出现类似的需求,还不如写了一个脚本制作自动化技术的跑哥。
底层的脚本被简化了,因为azurecontainerregistry上只有五六十个镜像,镜像只有最新的标签,没有其他标签。因此,顶部的过程被简化了,没有分页查询来获取所有镜像和所有标记。请在应用之前独立更改具体应用。
#variables $srcRegUser="xxx" $srcRegPwd="111111" $srcRegHost="xxx.azurecr.cn" $destRegUser="yyy" $destRegPwd="222" $destRegHost="registry.xxx.com" #getrepositoriesfromsourceregistry #httpie $response=(http-b-a"${srcRegUser}:${srcRegPwd}""https://${srcRegHost}/v2/_catalog")|ConvertFrom-Json #curl #$response=(curl-u"${srcRegUser}:${srcRegPwd}""https://${srcRegHost}/v2/_catalog")|ConvertFrom-Json #repository $repositories=$response.repositories # Write-Host$repositories #loginsourceregistry dockerlogin$srcRegHost-u$srcRegUser-p$srcRegPwd #logindestregistry dockerlogin$destRegHost-u$destRegUser-p$destRegPwd #sync foreach($repoin$repositories) { Write-Host"sync$repobegin" $srcTag="${srcRegHost}/${repo}:latest" $destTag="${destRegHost}/${repo}:latest" Write-Host"sourceimagetag:$srcTag" Write-Host"destimagetag$destTag" Write-Host"dockerpull$srcTagbegin" dockerpull$srcTag Write-Host"dockerpull$srcTagcompleted" Write-Host"dockertag$srcTag$destTaging" dockertag$srcTag$destTag Write-Host"dockerpush$destTagbegin" dockerpush$destTag Write-Host"dockerpush$destTagcompleted" Write-Host"dockerrmi$srcTag$destTagbegin" dockerrmi$srcTag$destTag Write-Host"dockerrmi$srcTag$destTagend" Write-Host"sync$repocompleted" } Write-Host"Completed..."更大的
如果需要分享的图片很多,可以考虑使用阿里云服务器的图片分享工具进行分享。
参考
https://stackoverflow.com/questions/31251356/how-to-get-a-list-of-images-on-docker-registry-v2
https://github.com/AliyunContainerService/image-syncer
https://docs.docker.com/registry/spec/api/
摘要
关于docker注册表映像的这篇文章到此结束。有关docker注册表映像的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)