[原创]一个加强版的docker registry


特性:
  1. 基于 docker-registry v1
  2. 新增:支持 https 协议,支持自颁发证书
  3. 新增:支持 basic auth,基于 nginx
  4. 修改:默认接入 mysql,新增 tag、layer 、cnt(layer 的依赖数)表
  5. 新增:支持通过原删除 tag 的 api 同时删除该tag相关Layer (不删除有其他 tag 依赖的 layer) 节省存储资源
  6. 新增:查询接口,allnamespaces 、alltags by namespace


已经在有道云笔记编辑好了格式,就不再这里再次编辑了 :)
使劲点这里!我的有道云笔记

源码:
https://github.com/zhengxiaoch ... -pier

9 个评论

不错,有web界面吗
第一个建议:

用下面的命令可以进入该数据库,你会看到mysql 提示符的。你试一下。

docker run -it --link mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
ssl那个部分暂时没有设好。 我就直接push 到 registry 了,可以进入mysql 看到创建的镜像层 和 tags。

但是指南里没有给出如何删除镜像。
还没有
用registry 自带的删除 tag的 api 即可,我在里面做了修改
我用的命令是: docker rmi localhost:5555/docker-image-pier, 该镜像的tag 是被删除了,但是进入mysql后,其镜像层以及tag还是在数据库里。

第二,我如果push 了一个镜像 (比如FROM busybox), 这样的话,我就会看到有些layer的计数会增加。

| 34 | 2332d8973c9393d58c03693bb4d8ec8bd853bafda3b897d48b391a1d0ba9ffb0 | 1 | NULL |
| 35 | 17583c7dd0dae6244203b8029733bdb7d17fccbb2b5d93e2b24cf48b8bfd06e2 | 2 | NULL |
| 36 | d1592a710ac323612bd786fa8ac20727c58d8a67847e5a65177c594f43919498 | 2 | NULL |
| 37 | 0ceb7fa7baeb91084c959cda9843f69131110728ea072c2c5d41f1a04dca1f3c | 1 | NULL |
+----+------------------------------------------------------------------+------+-------------+
37 rows in set (0.01 sec)

mysql>

但是,后面要如何操作?

另外,这个会支持registry 2.x版本嘛?
再给些建议。 针对这个repository, 你只需要按照标准的做法设置,不用给予ssl 的配置,这个让别人看相关的文章即可,因为步骤是通用的。 加了这方面的指导后,反而增加了很多的麻烦。

希望将原 docker/registry 的代码剥离出来。
docker rmi 是删除本地镜像, 你要用这个api :
@app.route('/v1/repositories/<path:repository>/tags/<tag>',methods=['DELETE'])

见源码:tags.py
好办法!

要回复文章请先登录注册