如何删除镜像、容器和数据卷?几个值得收藏的docker命令(上)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在docker的实践过程中,如果没有注意docker对磁盘的占用,在某一天你可能发现磁盘空间已经被docker一点点吃掉了。那么今天给大家介绍几个清理docker镜像、容器和数据卷的常用命令。

前言


在docker的实践过程中,如果没有注意docker对磁盘的占用,在某一天你可能发现磁盘空间已经被docker一点点吃掉了。那么今天给大家介绍几个清理docker镜像、容器和数据卷的常用命令。


删除所有未使用或悬空镜像,容器,数据卷和网络


docker提供了一个命令,可以清理任何悬空资源(镜像、容器、数据卷和网络)。


docker system prune


如果想删除任何已经停止的容器和未使用的容器(不止悬空镜像),可以在命令中添加-a选项。


docker system prune -a


删除镜像


删除一个或多个指定镜像


首先组合使用docker images-a选项找到想要删除的镜像。该命令会列出所有的镜像,包括中间镜像层。当定位到想要删除的镜像后,指定镜像ID或tag,使用docker rmi进行删除。


1、找出镜像列表


docker images -a


2、删除


docker rmi Image Image


删除悬空镜像


docker镜像由多个镜像层组成。悬空镜像指的已经跟任何带tag镜像都没有关联,但仍旧占用磁盘空间的镜像层。我们使用docker images -f dangling=true 命令,可以查看所有悬空镜像。确认无误后,使用docker image prune删除所有的悬空镜像。


1、找出所有的悬空镜像


docker images -f dangling=true


2、删除镜像


docker image prune


使用模式匹配删除镜像


你还可以组合使用docker imagesgrep命令来查找匹配的镜像。如果查找结果与你预期的相符,那么可以通过awk将镜像的ID作为参数传给docker rmi命令。值得注意的是,这些命令不是docker所提供的,所以不保证在所有的系统上都能使用。


1、找到匹配的镜像


docker images -a |  grep "pattern"


2、删除


docker images -a | grep "some pattern" | awk '{print $3}' | xargs docker rmi


删除所有镜像


使用docker images -a 可以列出系统中存在的所有的镜像。如果确定要删除所有的镜像,可以使用-q选项将镜像的ID作为参数传给docker rmi命令。


1、列出所有镜像


docker images -a


2、删除


docker rmi $(docker images -a -q)


删除容器


删除一个或多个指定容器


首先使用docker ps -a输出所有的容器。然后我们可以在输出的容器列表中找到需要删除的容器的ID或容器名。


1、找出所有的容器


docker ps -a


2、删除


docker rm ID_or_Name ID_or_Name


相关文章
|
14天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
436 28
|
10天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
16天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
85 2
|
17天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
32 1
|
10天前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
32 0
|
10天前
|
Kubernetes 监控 Java
如何在Kubernetes中配置镜像和容器的定期垃圾回收
如何在Kubernetes中配置镜像和容器的定期垃圾回收
|
8天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
33 2
|
18天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
14天前
|
关系型数据库 MySQL API
|
7天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。