0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

盘点汇总Docker磁盘环境的清理方法

如意 来源:服务端思维 作者:张健欣编译 2021-04-05 17:23 次阅读

如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付。

当我们在计算机中运行一个进程时,一旦这个进程完成,所有东西都会随之销毁。容器是我们现在很多人操作的基础设施。一切东西都运行在一个容器上,旨在每个容器有一个进程。当进程完成,容器就退出。但它不会自行清理。

Docker 积累的东西

你需要注意这些

已经停止的容器

磁盘卷

镜像

网络

如果有足够的空间,你可能不太关心磁盘空间,但是网络也很重要。默认地,Docker 使用 bridge 网络,它的极限是 31 个网络。当达到极限时,你会看到下面这条消息:

could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

如果你是一个为每个项目创建一个网络的 docker-compose 重度用户,就会发生这种情况。你可以通过设置一个自定义--subnet子网来解决问题,例如:

docker network create dada --subnet 192.167.11.0/24

但无论如何,本文的重点是清理。

使用 docker 清理

清理已经停止的容器

docker rm -v $(docker ps --all --quiet --filter ‘status=exited’)

这会找到所有处于已退出(exited)状态的容器,一行一个地输出它们的 ID,以便我们可以将它提供给其它 shell 指令。

我们使用docker rm -v来删除任何匿名卷(没有显式名称的卷)。

清理磁盘卷

上面的命令应该删除与该容器关联的卷。如果你手动创建卷,并要删除任何未被使用的卷:

docker volume rm $(docker volume ls --quiet --filter ‘dangling=true’)

清理镜像

通常删除所有 Docker 镜像是安全的。我们可以在需要的时候按需获取。通常在一个镜像被清理后,构建时间会更长,因为 docker 守护进程需要花时间再次下载镜像

docker rm --force $(docker images --quiet)

这里,我们使用了--force来强制删除镜像,即使一个容器正在使用那个镜像。我们可以以后再获取这个镜像。

清理网络

这很简单。我们可以删除任何网络,它会在之后按需重建。

docker network rm $(docker network ls --quiet)

使用 docker-compose 清理

如果你使用 docker-compose 启动容器,我们有一种简单的方法来清理与特定 compose 文件关联的资源。

docker-compose down --volumes --rmi all --remove-orphans

不幸的是,这个命令不会删除匿名卷,因此你必须处理这些匿名卷。

一条命令解决所有问题

docker 是短暂的,我们总是可以重新获取镜像,为了开发重新创建我们的数据库,或者这只是一个持续集成系统,我们可以删除一切。

docker system prune --all --force --volumes
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 磁盘
    +关注

    关注

    1

    文章

    379

    浏览量

    25207
  • 容器
    +关注

    关注

    0

    文章

    495

    浏览量

    22061
  • Docker
    +关注

    关注

    0

    文章

    458

    浏览量

    11854
收藏 人收藏

    评论

    相关推荐

    清理Docker镜像仓库时遇到的坑点

    Docker镜像仓库PC蛋蛋搭建清理的探索之路
    发表于 04-29 17:13

    docker中java环境的部署

    docker 部署java环境以及常用应用(持续更新)
    发表于 05-24 15:44

    如何清理逻辑磁盘

    清理逻辑磁盘方法
    发表于 11-05 07:56

    如何在Mac上清理磁盘空间?这些方法你用过了吗

    Mac电脑设备使用久了,可能会保存特别多的无用文件,那么Mac磁盘空间将会面临不够用的情况。那么该如何在Mac上清理磁盘空间?如何在Mac上清理磁盘
    发表于 09-09 21:05

    Docker占用资源过高,如何快速清理Docker

    如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察觉的应该是对磁盘空间的占用。
    的头像 发表于 07-06 10:05 9178次阅读

    linux磁盘满的清理方法

    Linux查看磁盘用量
    发表于 06-09 08:53 8758次阅读
    linux<b class='flag-5'>磁盘</b>满的<b class='flag-5'>清理</b><b class='flag-5'>方法</b>

    linux的磁盘如何清理

    Linux查看磁盘用量
    发表于 06-10 09:18 2579次阅读
    linux的<b class='flag-5'>磁盘</b>如何<b class='flag-5'>清理</b>

    应用于Docker的安全工具介绍

    网络安全的重要性是毋庸置疑的,无数有关恶意软件和安全漏洞之类的新闻也不断证实此论断。如果你正在管理Docker环境,并且希望避免可能存在的重大漏洞,那么你需要知道一些必要的工具来保护你的Docker
    的头像 发表于 03-12 14:05 1757次阅读

    使用docker完成编译环境创建

    作者环境:主机MacBook Pro 2015(16G),Docker Desktop for Mac(官方)
    的头像 发表于 04-21 07:49 3285次阅读

    docker-cleanup Docker清理脚本

    docker-cleanup.zip
    发表于 04-29 10:03 0次下载
    <b class='flag-5'>docker</b>-cleanup <b class='flag-5'>Docker</b><b class='flag-5'>清理</b>脚本

    三步教你清理NAS上无用docker文件

    今天登录ssh后查看文件发现其中一个文件夹占用很大,已经到了60%,于是乎我这边查询了一下发现全是docker残留文件与日志。每次测试docker容器后虽然会进行卸载,但是中间产生的日志和空文件夹系统并不会帮你进行清理,于是乎就
    的头像 发表于 02-24 11:29 1834次阅读
    三步教你<b class='flag-5'>清理</b>NAS上无用<b class='flag-5'>docker</b>文件

    linux传输一半磁盘满了怎么清理

    在使用Linux操作系统时,磁盘空间不足是一个常见的问题。当磁盘空间超过一半被使用时,可能会导致系统性能下降、应用程序无法正常运行甚至系统崩溃等问题。因此,及时清理磁盘空间至关重要。本
    的头像 发表于 11-23 10:34 549次阅读

    Kondo-为开发者设计的磁盘清理工具

    kondo 是一款为开发者设计的磁盘清理工具,支持清理 16 种语言和工具链中的构建相关产物。
    的头像 发表于 12-09 17:26 690次阅读
    Kondo-为开发者设计的<b class='flag-5'>磁盘清理</b>工具

    关于Docker清理命令集锦

    这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下 复制代码代码如下: docker kill $(docker ps -a -q)  删除所有已经停止的容器 复制代码
    的头像 发表于 06-13 15:56 384次阅读

    Docker运行环境安装

    、发布、测试和部署,可以帮助开发人员将最新版本代码应用到生产环境中。 Docker可以安装在多个平台中,包括Mac、Windows和Linux。不过,生产环境还是推荐在Linux上运行,以下以主流的Linux操作系统(CentO
    的头像 发表于 10-29 11:28 214次阅读