registry仓库通过api调用方式进行垃圾回收,garbage-collect

registry仓库的API默认是不提供垃圾回收API的,原因是在回收过程中,注册表是只读的,此时也不能进行push操作,所以就目前registry的设计来说,无法提供API进行实时的垃圾回收操作,那有什么办法可以通过API调用来进行垃圾回收呢?

这里给一个最简单的方法,通过docker api的exec操作。访问代码我贴在下面了,自己试吧,不想做过多的赘述,都是基本操作~

首先开放docker的api方式调用:

[root@docker2 ~]# vi /usr/lib/systemd/system/docker.service
# 如果是ubuntu用户, vi /lib/systemd/system/docker.service

#找到ExecStart并添加 -H tcp://0.0.0.0:2375 如下,端口2375可以自己定哈~不是固定的

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  -H tcp://0.0.0.0:2375

#退出保存

[root@docker2 ~]# systemctl daemon-reload

[root@docker2 ~]# systemctl restart docker

[root@docker2 ~]# netstat -antp | grep 2375
tcp6       0      0 :::4312                 :::*                    LISTEN      4764/dockerd        


这里docker请求的2375端口是我自己定的。

192.168.24.129:2375/containers/{id}/exec

{
  "AttachStdin": false,
  "AttachStdout": true,
  "AttachStderr": true,
  "Tty": false,
  "Privileged": true,
  "Cmd": [
    "registry",
    "garbage-collect",
    "--dry-run",
    "/etc/docker/registry/config.yml"
  ],
  "WorkingDir": "/"
}





192.168.24.129:2375/exec/{id}/start
{
"Detach": false,
"Tty": false
}

下图的4321端口号不用在意,我当时测试的时候忘记改回来了,跟上面的2375端口号是一个东西。
在这里插入图片描述
在这里插入图片描述
参考官方文档网址:https://docs.docker.com/engine/api/v1.41/#tag/Exec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RayCheungQT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值