学习
实践
活动
工具
TVP
写文章

第六章:构建私有仓库

前言

上一章节,讲解了利用 和 进行自定义镜像的构建。大部分时候,公司运维或者实施部门在构建了符合公司业务的镜像环境后,一般上不会上传到公共资源库的。这就需要自己搭建一个私有仓库,来存放自己的镜像数据,同时也可以存储其他镜像,方便拉取,比较国内的网络环境连接还是比较慢的。所以,本章节介绍下如何构建私有仓库。

安装Registry

官方提供了 镜像,方便构建自己的私有仓库。所以,接下来讲解下私有仓库服务的安装。

拉取Registry镜像

启动Registry镜像

由于 是一个镜像,运行后若我们删除了容器,里面的资源就都丢失了,所以我们在运行时,指定一个资源的挂载目录,映射到宿主的一个目录下,这样资源就不会丢失了。

提示: 是指 重启时此容器自动启动。启动后,就能通过:http://宿主IP:1888/v2 ,访问了。

本地推送镜像至仓库

我们在本地创建一个镜像,同时推送到仓库上。

此时,访问私有仓库地址:http://宿主IP:1888/v2/_catalog, 即可看见推送的镜像信息了。

远程推送镜像至仓库

直接使用 或者 时,是没有进行安全检验的。当我们使用外部的ip地址推送时, y为了安全性考虑,默认是需要 证书支持的。

错误提示:

搜索相关资料后,有两种方案:一种是通过 配置一个 属性;另一种就直接配置一个 的证书了。 的相关配置不在本章节讲解范围了,这里就不示例了,最稳妥的做法可以是:利用 进 证书支持,然后代理到 服务。有兴趣的可以自己动手实现下。

针对第一种做法,这里示例下:

之后重启 ,

之后再进行推送就能推送成功了

查看下镜像的版本列表就能知道是否上传成功。

管理Registry

仓库很大,要是没有一套管理规则,也是很头疼的事情。所以接下来,讲解下如何管理Registry。

Registry接口列表

基本上的管理都是通过以上的api接口方式了,大家可自行尝试下。

删除镜像示例

这里就简单示例下比较常用的也比较麻烦的 方法。这里直接使用 也可使用 等api尝试工具进行.

注意:由于默认是不允许删除镜像的(提示方法不支持),所以需要进行配置,开启删除功能。所以我们在启动时,直接设置参数( ):

或者可设置 ,加入 设置为 (yaml格式)

之后重启(restart)容器即可。

提示:对于 配置文件,里面可以设置很多的属性信息,具体属性可查看官网说明:https://docs.docker.com/registry/configuration/

删除镜像

name:镜像名称。

reference:删除时必须是镜像对应sha256值,推送时,可以获悉sha256值。

或者利用get获取对应镜像信息:

再或者可以直接根据存储目录查看(由于挂载宿主目录,所以我们直接在宿主机查看):

利用cat命令 或者 直接打开文件查看:

删除前:

资源库大小:

执行删除后,发现 已经为null了:

再看看大小,是没有变化的:

因为只删除了 ,镜像文件没有删除。所以我们进入容器执行下回收命令:

这个时候就已经回收了。目前貌似没有自动回收机制。

可以看见大小发生了变化了,说明镜像已经被清理了。也可以去刚刚查看 查看,里面的信息已经被删除了

最后想说,利用命令去删除之类的太麻烦了,现在有很多开源的工具可以管理仓库。大家可以自行搜索下。这里可以看看这个开源的删除资源的工具类:https://github.com/burnettk/delete-docker-registry-image,具体使用方法有具体说明。

参考资料

官方的文档还是很齐全的,建议大家还是直接去官网查看相关资料。

官网:https://docs.docker.com/registry

https://blog.csdn.net/sunshingheavy/article/details/54143764

https://cloud.tencent.com/developer/article/1116799

https://blog.csdn.net/nklinsirui/article/details/80705306

https://github.com/burnettk/delete-docker-registry-image

总结

本章节主要是介绍如何利用 进行私有仓库的创建及管理。对于单纯的 调用而言,有点麻烦,可以上网找写批量的脚本,简化步骤下。由于对linux命令不是很熟悉,大家还是自行谷歌吧。正常而言,还是应该有个管理的UI界面会更方便点。在后面讲解 时再来详细说明下,因为本人也没有搭建过,后面会为了这个章节找些资料,然后分享给大家。敬请期待!

最后

若文中有错误或者遗漏之处,还望指出,共同进步!

老生常谈

个人QQ:

微信公众号:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180805G0LE6U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券