删除docker私有仓库中的镜像

docker私有仓库v2版本中的镜像,官方不建议删除,但是也提供了删除接口:

DELETE /v2/<name>/manifests/<reference>
Host: <registry host>
Authorization: <scheme> <token>

删除的原理就是把索引删掉,但磁盘上的数据是删不掉的。这是由于各个镜像之间的不同层共用的关系,可能导致删除一个镜像后其余的镜像也无法使用了。

用python实现伪删除,代码如下:

#-*- coding:utf-8 -*-
#!/usr/bin/env python
‘‘‘
Created on 2016.10.8
@desc: delete images from repo
‘‘‘
import requests

repo_ip = "172.16.4.254"
repo_port = 5000
image_name = "oa"
image_tag = "20161012"

def deleteImagesFromRepo(repo_ip,repo_port,image_name,image_tag):
    head = {‘Accept‘: ‘application/vnd.docker.distribution.manifest.v2+json‘}
    reg = "http://" + repo_ip + ":" + str(repo_port) + "/v2/"
    res = requests.get(reg + image_name + "/manifests/" + image_tag,headers=head,verify=False)
    manifest = res.headers[‘Docker-Content-Digest‘]
    res2 = requests.delete(reg + image_name + "/manifests/"+manifest,verify=False)
    if res2.status_code == 202:
        print "delete %s success......"%(image_name+‘:‘+image_tag)
    else:
        print "delete %s fail......"%(image_name+‘:‘+image_tag)
    
deleteImagesFromRepo(repo_ip,repo_port,image_name,image_tag)

运行结果如下:

时间: 2024-10-21 17:45:11

删除docker私有仓库中的镜像的相关文章

获取docker私有仓库中所有镜像的方法

搭建好docker私有仓库,但是不能查看里面的所有镜像,于是写一小脚本,目的是获取到该仓库中的所有镜像的名字. #-*- coding:utf-8 -*- #!/usr/bin/env python ''' Created on 2016.10.8 @author: an_time @desc: get images name from registry ''' import requests import json import traceback repo_ip = '172.16.2.23

docker删除私有仓库中的镜像

1.curl -X DELETE docker.qian.cn:5000/v1/repositories/镜像名称/ 2. v1可以参考https://gist.github.com/kwk/c5443f2a1abcf0eb1eaa v2可以参考https://github.com/burnettk/delete-docker-registry-image

Docker私有仓库registry

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

docker私有仓库的搭建和使用。

1.下载仓库镜像docker pull registry 2.创建私有仓库容器-d表示后台启动docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry 3.防火墙解除5000端口限制firewall-cmd --zone=public --add-port=5000/tcp --permanent 4.验证私有仓库是否启动成功http://192.3.8.12:5000/v2 5.打包镜像docker

Docker私有仓库 Registry中的镜像管理

如何删除私有 registry 中的镜像? 首先,在默认情况下,docker registry 是不允许删除镜像的,需要在配置config.yml中启用:vim /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry storage: delete: enable: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var

docker私有仓库删除image

docker仓库存放着公司内部的镜像.时间长了难免存在一些废弃的镜像在里面.如果不删除造成空间的浪费.下面就简单的看看仓库中的镜像是怎么删除的. 第一步:registry启动依赖config.yml配置文件:在默认文件的storage区域中添加delete_enable_ture配置项.也可以在启动时候指定-e添加.允许删除镜像: 配置文件: 第二步:下载registry镜像并启动容器. docker run  -d -v /conf/:/etc/docker/registry -v /opt/

在docker私有仓库如何查看有哪些镜像?

搭建了docker私有仓库,上传了一些镜像,时间长了就会忘了有哪些镜像,在网上查了,有大佬是通过脚本查看的,多厉害! #!/usr/bin/env python#-*- coding:utf-8 -*-#'''#Created on 2016.10.8#@author: an_time#@desc: get images name from registry#''' import requestsimport jsonimport traceback repo_ip = '192.168.220

kubernetes下载docker私有仓库镜像

环境说明 docker仓库未认证地址:192.168.10.200:5000用户名:admin密码:admin邮箱:[email protected] 修改docker配置,访问docker私有仓库 1.docker源生版本 $cat /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS='-

centos下搭建docker私有仓库

目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1.Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式.此文档是在v1的基础上写的,如果需要安装registry v2,只需下载registry:2.2即可,或者可以下载后面的安装脚本运行安装. 一.下载registry镜像 docker pull registry 二.启动私有仓库容器,默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被