• 清理docker 占用空间,volume挂载过大,清除镜像,容器,挂载数据


    1.问题

    我在 用docker安装的es使用过程中,发现内存沾满了,很难受,删除了容器和镜像后,内存还是占比了很多。发现是/var/lib/docker/volumes下面挂载了太多的数据。因为这个是我测试用的学习服务器,所以我把里面的东西全删了。【但有时候数据我们必须要使用,所以不能全删,需要指定删除,下面就是一些docker容器存储清理所需的一些命令和方法】

    2.查看docker容器存储的命令

    docker system df 【查看docker容器占用命令】
    在这里插入图片描述

    Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
    Containers:运行的容器占用的空间,表示每个容器的读写层的空间。
    Local Volumes:容器挂载本地数据卷的空间。
    Build Cache:镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)
    
    • 1
    • 2
    • 3
    • 4

    3.docker占用情况说明

    3.1镜像占用

    镜像是我们下载的可执行在docker容器里面的文件,比如mysql,nginx,java.jar等等

    docker images        查看镜像文件
    docker rmi -f 镜像id 删除镜像
    
    • 1
    • 2

    3.2容器占用

    容器是基于镜像打包好的一个可运行的系统。当我们在创建一个容器的时候下面两个目录就会出现数据
    /var/lib/docker/containers/ID 目录所有日志都会以JSON形式保存到本机的此目录下。
    /var/lib/docker/overlay2 【文件系统】基于容器文件系统保存的数据会写到本机的此目录下,

    3.3volumes挂载占用

    volumes数据卷,就是把容器内的数据连接到主机上的地址。

    docker inspect 容器id可以查看容器挂载的目录在哪里
    在对应的Mounts下面可以看到 "Destination" 是容器内目录 "Source" 是主机的目录地址
    
    • 1
    • 2

    在这里插入图片描述

    3.删除容器查看存储的相关命令

    【查看当前目录下所有目录的磁盘占用情况】
    du -h --max-depth=1
    
    • 1
    • 2
    【删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(在构建镜像时产生的 tag 为 none 的镜像,没有和任何其他有 tag 的镜像有关联)】
    docker system prune
    【命令清理,该命令清理得更加彻底,可以将没有容器使用 Docker 镜像都删掉】
    docker system prune -a // 谨慎操作
    【查看目前在使用的volum】
    docker volume ls
    【删除目前没有容器使用的volume】
    docker volume rm $(docker volume ls -q)
    【命令可以查看某个 volume 的具体信息】
    docker inspect volume名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    CTFshow,信息搜集:web9
    python利用ffmpeg实现视频流的下载,并分段保存
    MySQL用户也可以是个角色
    家政预约小程序13我的订单
    几种常见的 ZK-EVM 类型
    ARM64异常之异常入口和异常返回
    PHP 运行模式, 各自的原理
    【云原生之Docker实战】使用Docker部署Trilium个人笔记工具
    Java动态编程之Instrumentation
    196、管理 RabbitMQ 的用户
  • 原文地址:https://blog.csdn.net/weixin_42581660/article/details/127511234