Docker Registry之删除镜像、垃圾回收
来源:互联网 发布:怎么自学计算机编程 编辑:程序博客网 时间:2024/05/14 01:29
Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据。在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据。本文对这一特性进行了体验,具体步骤如下。
1、部署镜像仓库
(1)启动仓库容器
dockerrun -d -v /home/config.yml:/etc/docker/registry/config.yml -p 4000:5000 --nametest_registryregistry:2.4.1
这里需要说明一点,在启动仓库时,需在配置文件中的storage配置中增加delete=true配置项,允许删除镜像,本次试验采用如下配置文件:
root@SZX1000041895:/# cat /home/config.ymlversion: 0.1log: fields: service: registrystorage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registryhttp: addr: :5000 headers: X-Content-Type-Options: [nosniff]health: storagedriver: enabled: true interval: 10s threshold: 3
(2)上传镜像
root@SZX1000041894:/home# docker tag centos 10.229.43.217:4000/xcb/centosroot@SZX1000041894:/home# docker push 10.229.43.217:4000/xcb/centosThepushrefersto a repository [10.229.43.217:4000/xcb/centos]5f70bf18a086: Pushed 4012bfb3d628: Pushedlatest: digest: sha256:5b367dbc03f141bb5246b0dff6d5fc9c83d8b8d363d0962f3b7d344340e458f6 size: 1331
(3)查看数据进行仓库容器中,通过du命令查看大小,可以看到当前仓库数据大小为61M。
root@SZX1000041895:~# docker exec -it test_registry /bin/bashroot@e6d36b0d7e86:/# du -sch /var/lib/registry61M .61M total
2、删除镜像
删除镜像对应的API如下:
DELETE /v2/<name>/manifests/<reference>
name:镜像名称
reference: 镜像对应sha256值
(1)发送请求,删除刚才上传的镜像
root@SZX1000041894:/home# curl -I -X DELETE http://10.229.43.217:4000/v2/xcb/centos/manifests/sha256:5b367dbc03f141bb5246b0dff6d5fc9c83d8b8d363d0962f3b7d344340e458f6HTTP/1.1 202 AcceptedDocker-Distribution-Api-Version: registry/2.0X-Content-Type-Options: nosniffDate: Wed, 06 Jul 2016 09:24:15 GMTContent-Length: 0Content-Type: text/plain; charset=utf-8
(2)查看数据大小
root@e6d36b0d7e86:/var/lib/registry# du -sch61M .61M total
可以看到数据大小没有变化(只删除了元数据)
3、垃圾回收
(1)进行容器执行垃圾回收命令
命令:registry garbage-collect config.yml
root@e6d36b0d7e86:/var/lib/registry# registry garbage-collect /etc/docker/registry/config.ymlINFO[0000] Deletingblob: /docker/registry/v2/blobs/sha256/96/9687900012707ea43dea8f07a441893903dd642d60668d093c4d4d2c5bedd9eb go.version=go1.6.2 instance.id=4d875a6c-764d-4b2d-a7c2-4e85ec2b9d58INFO[0000] Deletingblob: /docker/registry/v2/blobs/sha256/a3/a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4 go.version=go1.6.2 instance.id=4d875a6c-764d-4b2d-a7c2-4e85ec2b9d58INFO[0000] Deletingblob: /docker/registry/v2/blobs/sha256/c3/c3bf6062f354b9af9db4481f24f488da418727673ea76c5162b864e1eea29a4e go.version=go1.6.2 instance.id=4d875a6c-764d-4b2d-a7c2-4e85ec2b9d58INFO[0000] Deletingblob: /docker/registry/v2/blobs/sha256/5b/5b367dbc03f141bb5246b0dff6d5fc9c83d8b8d363d0962f3b7d344340e458f6 go.version=go1.6.2 instance.id=4d875a6c-764d-4b2d-a7c2-4e85ec2b9d58
(2)查看数据大小
root@e6d36b0d7e86:/var/lib/registry# du -sch 108K .108K total
0 0
- Docker Registry之删除镜像、垃圾回收
- docker registry 镜像删除
- Docker:《三》Docker registry 镜像仓库
- 构建最小的docker registry镜像
- Docker镜像仓库服务registry.Service
- Docker小技巧(六)——Registry镜像的删除
- Docker 删除镜像
- docker删除镜像
- Docker Registry 私有镜像仓库批量清理镜像
- Docker 官方镜像加速 registry.docker-cn.com
- 使用Docker registry镜像创建私有仓库
- 使用Docker registry镜像创建私有仓库
- 使用Docker registry镜像创建私有仓库
- docker配置国内仓库镜像registry-mirror
- docker 创建本地registry并push镜像
- 使用docker registry建立私有镜像仓库
- docker 私有库registry+镜像管理平台humpback
- docker 查询或获取私有仓库(registry)中的镜像
- 蓝桥杯 地宫取宝
- 蓝桥杯 小盆友排队
- 学习dijk最短路径中
- 动态规划 01背包学习中
- Heartbleed bug实验报告
- Docker Registry之删除镜像、垃圾回收
- 八皇后 2333
- 多线程与并发面试题2
- floyd学习中
- BST的删除
- 最小堆的建立
- 最小堆的上调整和下调整
- redhat6.5安装解压版jdk
- 表达式求值