【详细】如何优雅地删除 Docker 容器与镜像
内容预览 ≧∀≦ゞ
- 镜像与容器的区别
- 删除容器和镜像的具体步骤
- 1. 删除容器
- 步骤 1:查看当前运行的容器
- 步骤 2:停止容器
- 步骤 3:删除容器
- 2. 删除镜像
- 步骤 1:查看镜像列表
- 步骤 2:删除镜像
- 3. 删除所有容器和镜像
- 使用 1Panel 管理镜像和容器
- 小结
- 优雅删除容器的流程
- 优雅删除镜像的流程
在使用 Docker 进行容器化管理时,随着时间的推移,镜像和容器会不断累积,占用大量存储空间。如果不及时清理,它们可能会影响系统的运行效率。为了保持系统的整洁与高效,了解如何安全、高效地删除镜像和容器是每位 Docker 用户必备的技能。
本文将详细介绍 Docker 中镜像和容器的区别,如何删除它们,以及如何优雅地进行这些操作。
镜像与容器的区别
在 Docker 中,镜像(Image)和容器(Container)是两个核心概念,它们分别扮演着不同的角色:
- 镜像:Docker 镜像是一个静态文件,包含了构建和运行容器所需的所有内容。可以将其理解为应用程序的打包模板,通过镜像可以创建多个容器实例。
- 容器:容器是镜像的运行实例,是镜像在 Docker 中的具体实现。容器可以随时启动、停止和删除,每个新容器都会基于指定的镜像创建。
简单来说,镜像是一个应用的模板,而容器则是这个模板的运行副本。
删除容器和镜像的具体步骤
1. 删除容器
容器在 Docker 中占用系统资源,运行不再需要的容器会浪费存储空间。因此,定期清理无用容器是非常重要的。以下是删除容器的步骤:
步骤 1:查看当前运行的容器
首先,可以使用 docker ps
命令查看所有正在运行的容器。这会显示一个表格,包含容器 ID、镜像名称、启动命令、创建时间和当前状态等信息。
docker ps
示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0b4c3e8 myapp:latest "/bin/bash" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp my_app
在此示例中,容器 ID 为 d0b4c3e8
的容器正在运行。删除容器时,我们可以只使用 容器 ID 的前三位,如 d0b
。
步骤 2:停止容器
使用 docker stop
命令停止容器。停止容器后,容器的状态将从“Up”变为“Exited”,意味着它已停止运行,但仍然存在于系统中。
docker stop d0b
停止后,可以再次运行 docker ps
,确认容器是否已停止。此时,如果使用 docker ps
,将不会看到该容器,因为该命令仅列出正在运行的容器。
步骤 3:删除容器
停止容器后,使用 docker rm
命令彻底删除该容器。此命令仅删除指定的容器,不会影响其他容器的运行。
docker rm d0b
成功执行后,该容器将被从 Docker 系统中彻底移除。如果您想查看所有容器(包括已停止的容器),可以使用以下命令:
docker ps -a
此命令会列出所有容器,包括已退出的容器,以便检查和确认。
2. 删除镜像
每个容器都是基于镜像启动的,镜像包含了操作系统、应用程序、依赖及配置等内容。删除不再需要的镜像可以释放系统空间。删除镜像前,确保没有容器正在使用该镜像。
步骤 1:查看镜像列表
使用 docker images
命令查看当前系统中的所有镜像,输出包括镜像 ID、名称、标签、创建时间和大小等信息。
docker images
示例输出:
REPOSITORY TAG IMAGE ID CREATED SIZE
myapp latest b76e2f4b 2 days ago 500MB
ubuntu 20.04 a78b2c1d 3 weeks ago 70MB
在上面的示例中,镜像 ID 为 b76e2f4b
的镜像对应应用 myapp:latest
。我们可以使用镜像 ID 的前三位(如 b76
)来指定要删除的镜像。
步骤 2:删除镜像
确保没有运行中的容器依赖该镜像后,可以使用 docker rmi
命令删除指定的镜像。
docker rmi b76
成功执行后,Docker 将从系统中移除该镜像。如果该镜像被多个容器引用,您需要先停止并删除相关容器,然后再删除镜像。
3. 删除所有容器和镜像
如果您希望删除所有容器和镜像,可以使用以下命令:
- 删除所有容器:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
- 删除所有镜像:
docker rmi $(docker images -q)
这些命令会停止并删除所有容器,然后删除所有镜像。
使用 1Panel 管理镜像和容器
如果您希望更直观地管理 Docker 容器和镜像,可以考虑使用 1Panel 这样的一体化管理工具。1Panel 提供了图形化界面,可以方便地查看、启动、停止、删除容器和镜像,极大地简化了 Docker 管理操作,非常适合不熟悉命令行操作的用户。
小结
优雅删除容器的流程
- 停止容器:优雅地停止容器的运行。
- 删除容器:容器停止后,再进行删除操作。
优雅删除镜像的流程
- 停止容器:首先停止基于该镜像运行的所有容器。
- 删除容器:确保容器已停止后,进行容器删除。
- 删除镜像:容器删除后,再删除镜像。
通过以上步骤,您可以有效地管理和清理 Docker 容器与镜像,释放宝贵的系统资源。
最后,再次感谢您阅读本篇文章!如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流。您的点赞和分享将是我继续创作的动力!
相关文章:

【详细】如何优雅地删除 Docker 容器与镜像
内容预览 ≧∀≦ゞ 镜像与容器的区别删除容器和镜像的具体步骤1. 删除容器步骤 1:查看当前运行的容器步骤 2:停止容器步骤 3:删除容器 2. 删除镜像步骤 1:查看镜像列表步骤 2:删除镜像 3. 删除所有容器和镜像 使用 1Pa…...
Spring Spring Boot 常用注解总结
在 Java 开发中,Spring 和 Spring Boot 框架广泛应用于企业级应用开发。这两个框架提供了丰富的注解,使得开发更加高效和便捷。本文将对 Spring 和 Spring Boot 中常用的注解进行总结。 一、Spring 常用注解 1. Component 作用:用于将普通的…...
Flink独立集群+Flink整合yarn
Flink独立集群的搭建: 1、上传解压配置环境变量 # 1、解压 tar -xvf flink-1.15.4-bin-scala_2.12.tgz # 2、修改环境变量 export FLINK_HOME/usr/local/soft/flink-1.15.4 export PATH$PATH:$FLINK_HOME/bin 2、修改配置文件 cd /usr/local/soft/flink-1.15.4/…...
动态规划 之 简单多状态 dp 问题 算法专题
一. 按摩师 按摩师 状态表示 根据经验 题目要求 dp[i] 表示: 选择到i位置时, 此时的最长预约时长 但是根据题目又分成两种情况: f[i] : 选择到 i 位置的时候, nums[i] 必选, 此时的最长预约时长 g[i] : 选择到 i 位置的时候, nums[i] 不选, 此时的最长预约时长状态转移方程 …...

qt QPixmapCache详解
1、概述 QPixmapCache是Qt框架中提供的一个功能强大的图像缓存管理工具类。它允许开发者在全局范围内缓存QPixmap对象,从而有效减少图像的重复加载,提高图像加载和显示的效率。这对于需要频繁加载和显示图像的用户界面应用来说尤为重要,能够…...
Redis中的持久化
什么是 Redis 持久化? Redis 是一个内存数据库,也就是说它主要把数据存储在内存中,这样可以实现非常高的读写速度。通常,内存数据库是非常快速且高效的,但它也有一个很大的问题:数据丢失的风险。因为当 Red…...

Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称
常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…...

SMO+PLL滑膜观测器、MARS模型参考自适应观测器simulink仿真
模型内容介绍: (1)SMOPLL滑膜观测器通过SMO估计电机的转速和位置信息,并利用PLL技术对这些信息进行跟踪和校正,以实现高精度的电机控制; (2)MARS是一种基于模型参考自适应控制理论…...
例题解析:利用异或运算(XOR)找出单独的数
异或运算(XOR) 异或运算是一种位运算,通常用符号 ^ 表示。它的运算规则如下: 如果两个二进制位相同,结果为 0。如果两个二进制位不同,结果为 1。 具体来说,对于两个二进制位 a 和 bÿ…...

如何处理微信小程序大量未捕获的异常
1)如何处理微信小程序大量未捕获的异常 2)如何关闭代码创建的纹理的读写,或者创建不带读写的图片 3)回收带有贴图和Collider的Mesh,如何正确用对象池维护 4)Cloth组件使用在一个篮筐上,运行后篮…...
C#-StringBuilder
string:特殊的引用 每次重新赋值或者拼接时会分配新的内存空间,如果一个字符串经常改变会非常浪费空间。 StringBuilder:C#提供的一个用于处理字符串的公共类 修改字符串而不创建新的对象,需要频繁修改和拼接的字符串可以使用它…...

SQLI LABS | Less-39 GET-Stacked Query Injection-Intiger Based
关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-39/ 本关是堆…...

linux安装zookeeper和kafka集群
linux安装zookeeper和kafka集群 一、Zookeeper集群部署安装zookeeper1. 下载2. 上传, 解压3. 配置 Zookeeper 节点4. 创建 myid 文件5. 启动参数更改6. sh文件授权7. 启动集群8. 防火墙开启端口 验证集群 二、kafka集群安装安装Kafka1. 下载Kafka安装包2. 上传到服务器…...

洞悉 Linux 系统运行细节,使用 atop 监测和回看系统负载状态
Linux系统的资源使用情况,你可以通过使用命令如free、top和netstat来实时监控内存、CPU及端口的使用状态。对于需要追踪历史资源消耗动态的场景,atop命令则能有效帮助用户查看过去的系统负载情况。 本篇教程的灵感源自一位小伙伴的真实经历:…...

“双十一”电商狂欢进行时,在AI的加持下看网易云信IM、RTC如何助力商家!
作为一年一度的消费盛会,2024年“双十一”购物狂欢节早已拉开帷幕。蹲守直播间、在主播热情介绍中点开链接并加购,也已成为大多数人打开“双11”的重要方式。然而,在这火热的购物氛围背后,主播频频“翻车”、优质主播稀缺、客服响…...
Python调用企业微信的扫一扫
在企业微信里面新建了一个应用,指向了搭建服务器上Django写的web应用。 web应用需要使用扫描二维码的功能,就使用了大家都评价效果好的微信的扫一扫,事实也证明微信的扫一扫很好,但实现这个功能还是花了自己不少时间,很…...
速盾:CDN和OBS能共用流量包吗?
CDN和OBS是两种不同的云服务,它们在内容分发和存储方面有着不同的功能和优势。虽然它们都可以用于提供高效的内容分发和存储服务,但是它们的流量包是不能共用的。 CDN,即内容分发网络,是一种通过将内容存储在全球分布的服务器上&…...

第8章 利用CSS制作导航菜单
8.1 水平顶部导航栏 水平莱单导航栏是网站设计中应用范围最广的导航设计,一般放置在页面的顶部。水平 导航适用性强,几乎所有类型的网站都可以使用,设计难度较低。 如果导航过于普通,无法容纳复杂的信息结构,就需要在…...
C# 集合与泛型
文章目录 前言1.什么是集合?2.非泛型集合(了解即可)2.1常见的非泛型集合 3.泛型的概念4.常用的泛型集合4.1 List < T > <T> <T>4.2 Dictionary<TKey, TValue>4.3 Queue < T > <T> <T>4.4 S t a c…...
el-date-picker 设置开始时间和结束时间
<el-date-picker v-model"ruleForm.RECORDDATE" type"date" placeholder"日期" format"YYYY/M/D" value-format"YYYY/M/D" style"width: 100%;" :disabled-date"publishDateAfter" > </el-dat…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...

使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...