Docker registry GC 原理分析

作者:木子才云

编辑:Bach才云

校对:bot才云

此前,《Docker 容器镜像是怎么炼成的》一文简单提到了容器镜像的一些知识,并介绍了镜像在 registry 中存储的目录结构。本文从文件系统层面分析了 registry GC 的原理,相比源码分析更加直观。

部署 registry 容器

首先我们在本地部署一个 registry 容器,再使用 skopeo 工具替代 Docker 命令行客户端进行 copy 镜像和 delete 镜像。

自签 SSL 证书

这样我们在使用 skopeo 时不用加额外参数。

信任证书,根据不同的发行版选择相应的路径和命令行即可。

创建密码 auth 认证 auth.htpasswd 文件

由于 push 镜像和 delete 镜像是通过 HTTP 请求 registry 的 API 完成的,每个请求都需要一个 token 才能完成操作,这个 token 则需要使用 AUTH 文件进行鉴权。我们使用 htpasswd 来生成一个明文的用户、密码即可。

启动 registry 容器,docker run!

  • -v /var/lib/registry:/var/lib/registry ,将本地的存储目录挂载到容器内的 registry 存储目录下。

  • -v pwd/certs:/certs,将生成的 SSL 证书挂载到容器内。

  • -e REGISTRY_STORAGE_DELETE_ENABLED=true,添加该参数才能进行 DELETE 镜像操作,不然的话会提示 Error in deleting repository in a private registry V2 #1573 这种错误。

docker login

这一步是为了在 ~/.docker/.config.json 中添加 auth 认证,方便后面使用 skopeo。

copy 镜像到 registry

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值