python脚本清理docker镜像

该脚本的作用是检查指定路径的磁盘使用情况,并根据使用情况进行相应的操作。

具体脚本功能如下:

  1. 导入了 psutil 和 docker 模块。
  2. 定义了一个名为 showDiskInfo 的函数,它接收一个路径参数,并使用 psutil.disk_usage() 函数获取该路径的磁盘使用情况。然后,将磁盘使用情况打印输出,并将字节转换为 GB 单位,并打印出总大小、已使用、未使用和使用百分比。
  3. 定义了一个名为 pruneImages 的函数,它使用 docker.DockerClient 对象连接到 Docker 引擎,并调用 images.prune() 方法清理未使用的镜像。
  4. 调用 showDiskInfo(‘/’) 函数来获取根路径的磁盘使用情况,并将结果保存在 DISKINFO 变量中。
  5. 如果磁盘使用百分比大于80%,则打印 “大于80” 并调用 pruneImages() 函数清理未使用的 Docker 镜像;否则,打印 “小于80”。

简单来说,该脚本的目的是检查根路径的磁盘使用情况,如果使用超过80%,则清理 Docker 引擎中的未使用镜像。

#!/bin/python3

import psutil
import docker
 
#定义函数,参数为路径
 
def showDiskInfo(path):
 
    G = 1024*1024*1024
    
    diskinfo = psutil.disk_usage(path)
    
    print(path, diskinfo)
    
    #将字节转换成G
    
    print('%s 大小: %dG, 已使用: %dG, 未使用: %dG, 使用百分比:%d%%'%\
    
    (path, diskinfo.total//G, diskinfo.used//G, diskinfo.free//G,diskinfo.percent))

    return diskinfo.percent

def pruneImages():
    client = docker.DockerClient(base_url='unix://var/run/docker.sock',version='auto')
    # print(client.ping())
    try:
        client.images.prune(filters={
    
    'dangling': False})
        print("prune images successfully")
    except Exception as e:
        print(e)    

DISKINFO = showDiskInfo('/')
if DISKINFO > 80:
    print("大于80")
    pruneImages()
else:
    print("小于80")    



猜你喜欢

转载自blog.csdn.net/u010674101/article/details/133162156