Docker修剪未使用对象

简介: Docker 采用保守的方法来清理未使用的对象,例如镜像(Image)、容器(Container)、数据卷(volume)和网络(Network)。也就是说,除非您明确告诉 Docker 这样做,否则每个对象都永远不会被删除。结果导致了 Docker 最终使用了大量的磁盘空间。对于每种类型的对象,Docker 都提供了一个 prune(删除)命令。此外,您可以一次清理多个对象类型。本主题介绍如何使用每个命令。

Docker修剪未使用对象

Docker 采用保守的方法来清理未使用的对象,例如镜像(Image)、容器(Container)、数据卷(volume)和网络(Network)。也就是说,除非您明确告诉 Docker 这样做,否则每个对象都永远不会被删除。结果导致了 Docker 最终使用了大量的磁盘空间。对于每种类型的对象,Docker 都提供了一个 prune(删除)命令。此外,您可以一次清理多个对象类型。本主题介绍如何使用每个命令。

镜像(Image)修剪

docker image prune该命令可以清理未使用的镜像。默认情况下,该命令仅删除挂起的镜像。挂起的镜像是没有标签且不被其他容器引用的镜像。要删除挂起的镜像,只需要键入:docker image prune

$ docker image prune

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y

--a参数,可以删除掉所有未使用的镜像。

$ docker image prune -a

WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y

默认情况下,它会询问您是否要继续。要跳过此检查,请使用-f--force参数。

您可以使用带有--filter参数的过滤表达式来选择性删除不需要的镜像。

$ docker image prune -a --filter "until=24h"

还可以使用其他过滤表达式。相关的更多示例,请参阅 docker image prune 参考

容器(Container)修剪

当您停止容器时,它不会自动删除,除非您使用--rm参数来启动它。所以,当您使用docker ps -a命令查看 Docker 主机上的所有容器(包括已停止的容器),您会对容器的数量感到惊讶。尤其是在开发系统上!停止的容器中的Overlay将会继续消耗磁盘空间。这时候,请使用docker container prune命令来清理它们。

$ docker container prune

WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y

数据卷(volume)修剪

数据卷由一个或多个容器使用,并占用 Docker 主机上的磁盘空间。删除卷会使得数据破坏,所以它并不会自动删除。

$ docker volume prune

WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y

默认情况下,它会显示确认提示。如果您不想使用此提示,请使用-f--force标志。

默认情况下,所有未使用的卷都会被删除。

--filter参数可以用来限制删除的范围。例如,以下命令中的keep意味着将仅删除未标记的卷。

$ docker volume prune --filter "label!=keep"

还可以使用其他过滤表达式。相关的更多示例,请参阅docker volume prune 参考

网络(Network)修剪

Docker 网络不消耗磁盘空间,但它会创建iptables防火墙规则、桥接网络设备和路由表条目。要清理它们,请使用docker network prune命令从容器中清理未使用的网络。

$ docker network prune

WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N] y

默认情况下,它会显示确认提示。如果您不想使用此提示,请使用-f--force参数。

默认情况下,所有未使用的网络都会被删除。

--filter参数可以用来限制删除的范围。例如,以下命令将仅删除超过 24 小时的网络。

$ docker network prune --filter "until=24h"

您还可以使用其他过滤表达式。相关的更多示例,请参阅docker network prune 参考

修剪所有

docker system prune命令是修剪镜像、容器和网络的快捷方式。默认情况下不会删除卷,因此您必须在docker system prune命令当中使用--volumes来删除它们。

$ docker system prune

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

如果您还想删除该卷,请使用--volumes参数。

$ docker system prune --volumes

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all volumes not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

默认情况下,它会显示确认提示。如果您不想使用此提示,请使用-f--force参数。

原文地址

使用していない Docker オブジェクトの削除(prune)

目录
相关文章
|
2天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
118 77
|
11天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
4天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
29 3
|
11天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
41 7
|
11天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
23 5
|
11天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
31 3
|
11天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
32 4
|
11天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
21 2
|
11天前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
28 1
|
13天前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
30 1