docker私有仓库删除image

docker仓库存放着公司内部的镜像、时间长了难免存在一些废弃的镜像在里面。如果不删除造成空间的浪费。下面就简单的看看仓库中的镜像是怎么删除的。

第一步:registry启动依赖config.yml配置文件:在默认文件的storage区域中添加delete_enable_ture配置项。也可以在启动时候指定-e添加。允许删除镜像:

配置文件:

第二步:下载registry镜像并启动容器。

docker run  -d -v /conf/:/etc/docker/registry -v /opt/registry:/var/lib/registry -p5000:5000 --restart=always --name registry docker.io/registr y:latest

第三步:上传镜像

前边三个步骤都是为删除镜像做准备。现在正式开始删除操作。

先看下官网怎么说:

语法非常简单。官网上注明可以通过name和digest删除image。name我们是知道的。现在去获取digest:

删除一个image所需要的name和digest都有了。现在执行删除操作:

[[email protected] ~]# curl -XDELETE 127.0.0.1:5000/v2/registry_test/manifests/sha256:48b7957fb8794 3139789779c6e1448ce3cbd52adf1eba62f4633c0e289c08c1b

看似已经删除了,其实硬盘地址并没有释放。是因为docker删除image只是删除的image的元数据信息。层数据并没有删除。现在进入registry中进行垃圾回收

[[email protected] ~]# docker exec -it <容器ID|容器名称> /bin/sh
/ # cd /var/lib/registry/
/var/lib/registry # du -sch
10.3M    .
10.3M    total
/var/lib/registry # registry garbage-collect /etc/docker/registry/config.yml
/var/lib/registry # du -sch
28.0K    .
28.0K    total

这样就达到我们的目的了。及删除了仓库容器,又释放了磁盘空间

注意事项:

1、registry配置文件:如果想要进行仓库images的删除操作: 至少要添加REGISTRY_STORAGE_DELETE_ENABLED: true这个环境变量也就是第一步标注的

2、获取digest:自从registry2.3之后,获取digest需要进行安全检查。所以必须加头部信息Accept: application/vnd.docker.distribution.manifest.v2+json。否则获取到的digest将不能使用。

时间: 2024-10-10 05:06:47

docker私有仓库删除image的相关文章

删除docker私有仓库中的镜像

docker私有仓库v2版本中的镜像,官方不建议删除,但是也提供了删除接口: DELETE /v2/<name>/manifests/<reference> Host: <registry host> Authorization: <scheme> <token> 删除的原理就是把索引删掉,但磁盘上的数据是删不掉的.这是由于各个镜像之间的不同层共用的关系,可能导致删除一个镜像后其余的镜像也无法使用了. 用python实现伪删除,代码如下: #-*

手把手教你搭建Docker私有仓库

章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就会比较简单了. 先准备两台虚拟机: Docker客户端:192.168.1.160 Docker私有仓库服务器:192.168.1.161 两台机器上都配好yum源,安装好docker,设置好docker加速器 1.在服务端192.168.1.161上拉取仓库镜像:registry [[email protected] ~]# docker

Docker私有仓库registry

1.docker私有仓库的搭建与使用    docker不仅有一个中央仓库,同时也允许我们搭建自己的私有仓库,如果读者对maven有了解,将很容易理解私有仓库的优势:    1.节省带宽,镜像无需从中央仓库下载,只需要从私有仓库中下载即可    2.对于私有仓库中已经有的镜像,提升了下载速度    3.便于内部镜像的统一管理2.下面我们来讲解一下如何搭建.使用私有仓库:    1.准备两台安装有docker的Centos7的机器,主机规划如下:        主机         IP     

Docker私有仓库部署和管理

Docker私有仓库部署和管理 本章结构: Harbor介绍 部署Harbor所依赖的Docker Compose服务 部署Harbor服务 Harbor日常操作管理 Harbor管理生命周期 Harbor介绍 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP目录服务/AD域服务 图像删除和垃圾收集 图形UI(可以访问Web界面) 审计 RESTful API Harbor架构组成 Proxy: 通过

Docker私有仓库部署---Harbor(实例演示!!!)

Harbor概述 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP/AD 图像删除和垃圾收集 图形UI 审计 RESTful API Harbor架构组成 Proxy 通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务 Registry 负责存储Docker镜像.并处理docker push/pull 命令 Core services Harbor的核心功能,

搭建docker私有仓库

安装Docker Docker的安装请参考官网(http://www.docker.com),非常详细的介绍了各个操作系统的部署过程. 对于CentOS 7.x操作系统的在线安装Docker,请参考如下:https://docs.docker.com/engine/installation/linux/centos 搭建Docker私有仓库 Docker官方提供了一个公有的registry叫做Docker Hub.但是企业内部可能有些镜像还是不方便放到公网上去,所以docker也提供了regis

CentOS7搭建Docker私有仓库

学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此 机会对学习Docker的朋友有所帮助. 个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统 一.准备 地址规划: Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.

CentOS 7搭建Docker私有仓库

学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此机会对学习Docker的朋友有所帮助. 个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统 一.准备 地址规划: Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.0

(六)构建Docker私有仓库、Gitlab仓库和持续集成环境

环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1:172.16.100.20 Docker服务器,运行容器 构建Docker私有仓库 我们通过Docker官方镜像registry来构建私有仓库. 首先要关闭防火墙.开启IP转发,在CentOS 7上IP转发是禁用的. 默认情况下会将仓库目录创建在容器的/var/lib/registry/下,所以我们