Docker 清理镜像策略详解
文章目录
- 前言
- 一、删除 Docker 镜像
- 1. 查看当前镜像
- 2. 删除单个镜像
- 3. 删除多个镜像
- 4. 删除所有未使用的镜像
- 5. 删除悬空的 Docker 镜像
- 6. 根据模式删除镜像
- 7. 删除所有镜像
- 二、删除 Docker 容器
- 1. 查找容器
- 2. 删除一个或多个特定容器
- 3. 退出时删除容器
- 4. 删除所有已退出的容器
- 5. 使用多个过滤器删除容器
- 三、清理保存的镜像
- 1. 保存镜像为 tar 包
- 2. 从 tar 包中加载镜像
- 四、一键清理所有未使用的资源
- 五、注意事项
- 总结
前言
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。然而,随着时间的推移,Docker 镜像、容器和数据卷的积累可能会导致磁盘空间的浪费。因此,合理地清理这些资源变得尤为重要。本文将详细介绍 Docker 清理镜像的策略,包括删除镜像、删除容器和清理保存的镜像。
一、删除 Docker 镜像
1. 查看当前镜像
在进行任何删除操作之前,首先需要查看当前系统中存在的所有镜像。可以使用以下命令:
docker images
此命令将列出所有本地存在的镜像,包括标签和镜像ID。
2. 删除单个镜像
如果需要删除单个镜像,可以使用 docker rmi
命令,后跟镜像的名称或ID:
docker rmi <镜像名称或ID>
如果镜像正在被使用,Docker 默认不允许删除。但可以使用 -f
参数强制删除:
docker rmi -f <镜像名称或ID>
3. 删除多个镜像
如果要一次性删除多个镜像,可以列出它们的名称或ID:
docker rmi <镜像1> <镜像2> <镜像3>
同样,如果需要强制删除,可以添加 -f
选项:
docker rmi -f <镜像1> <镜像2> <镜像3>
4. 删除所有未使用的镜像
使用以下命令删除所有未被任何容器引用的镜像:
docker image prune
如果要删除包括正在使用的所有镜像,可以使用以下命令,但需谨慎操作:
docker rmi $(docker images -q)
5. 删除悬空的 Docker 镜像
悬空镜像是那些与任何标记过的镜像无关的层。它们不再有用并消耗磁盘空间。可以通过以下命令定位这些镜像,并使用 docker image prune
命令删除:
docker images -f dangling=true
docker image prune
6. 根据模式删除镜像
可以使用 docker images
和 grep 的组合找到所有与某个模式匹配的镜像,然后使用 awk 将 ID 传递给 docker rmi
进行删除:
docker images -a | grep "pattern" | awk '{print $1":"$2}' | xargs docker rmi
7. 删除所有镜像
系统上的所有 Docker 镜像可以通过以下命令列出。一旦确定要删除它们,可以添加 -q
标志来传递镜像 ID 给 docker rmi
:
docker images -a
docker rmi $(docker images -a -q)
二、删除 Docker 容器
1. 查找容器
使用 docker ps -a
命令来定位你想要删除的容器的名称或 ID:
docker ps -a
2. 删除一个或多个特定容器
要删除一个或多个特定容器,可以使用以下命令:
docker rm ID_or_Name ID_or_Name
3. 退出时删除容器
如果你在创建容器时就知道一旦完成就不想保留它,可以运行 docker run --rm
来在容器退出时自动删除它:
docker run --rm image_name
4. 删除所有已退出的容器
要查看已退出容器的列表,请使用 -f
标志基于状态进行筛选。确认想要删除这些容器后,使用 -q
将 ID 传递给 docker rm
命令:
docker ps -a -f status=exited
docker rm $(docker ps -a -f status=exited -q)
5. 使用多个过滤器删除容器
可以通过多个过滤器来删除容器,例如根据状态和名称:
docker ps -a -f "status=exited" -f "name=pattern"
docker rm $(docker ps -a -f "status=exited" -f "name=pattern" -q)
三、清理保存的镜像
1. 保存镜像为 tar 包
使用 docker save
命令将指定镜像保存为一个 tar 压缩包,可以用于传输或备份:
docker save -o mynginx.tar mynginx:v1
2. 从 tar 包中加载镜像
使用 docker load
命令从一个 tar 包中加载镜像到本地 Docker 库:
docker load -i mynginx.tar
四、一键清理所有未使用的资源
Docker 提供了一个强大的命令,可以一键清理所有未使用的资源,包括镜像、容器、数据卷和网络:
docker system prune
如果要删除所有未使用的资源(包括已停止的容器和所有未使用的镜像),可以添加 -a
标志:
docker system prune -a
五、注意事项
- 谨慎操作:在执行删除操作时,务必确认要删除的镜像和容器,以免误删重要资源。
- 定期清理:定期执行清理操作,以避免资源累积过多。
- 备份重要数据:在删除之前,确保备份所有重要数据,以防万一。
总结
通过上述策略,可以有效地管理和清理 Docker 镜像,保持系统的整洁和高效运行。
相关文章:
Docker 清理镜像策略详解
文章目录 前言一、删除 Docker 镜像1. 查看当前镜像2. 删除单个镜像3. 删除多个镜像4. 删除所有未使用的镜像5. 删除悬空的 Docker 镜像6. 根据模式删除镜像7. 删除所有镜像 二、删除 Docker 容器1. 查找容器2. 删除一个或多个特定容器3. 退出时删除容器4. 删除所有已退出的容器…...
【Linux】TCP网络编程
目录 V1_Echo_Server V2_Echo_Server多进程版本 V3_Echo_Server多线程版本 V3-1_多线程远程命令执行 V4_Echo_Server线程池版本 V1_Echo_Server TcpServer的上层调用如下,和UdpServer几乎一样: 而在InitServer中,大部分也和UDP那里一样&…...
排序学习整理(2)
上集回顾 排序学习整理(1)-CSDN博客 2.3 交换排序 交换排序的基本思想是:根据序列中两个记录键值的比较结果,交换这两个记录在序列中的位置。 特点: 通过比较和交换操作,将键值较大的记录逐步移动到序列…...
AI蛋白质设计与人工智能药物设计
AI蛋白质设计与人工智能药物设计 AI蛋白质设计 一、蛋白质相关的深度学习简介 1.基础概念 1.1.机器学习简介:从手写数字识别到大语言模型 1.2.蛋白质结构预测与设计回顾 1.3.Linux简介 1.4.代码环境:VS code和Jupyter notebook* 1.5.Python关键概…...
IOS ARKit进行图像识别
先讲一下基础控涧,资源的话可以留言,抽空我把它传到GitHub上,这里没写收积分,竟然充值才能下载,我下载也要充值,牛! ARSCNView 可以理解画布或者场景 1 配置 ARWorldTrackingConfiguration AR追…...
初级数据结构——二叉搜索树
目录 前言一、定义二、基本操作三、时间复杂度分析四、变体五、动态图解六、代码模版七、经典例题[1.——700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)代码题解 [2.——938. 二叉搜索树的范围和](https://leetcode.cn/problems/ra…...
C++设计模式之组合模式中如何实现同一层部件的有序性
在组合模式中,为了实现同一层上部件的有序性,可以采取以下几种设计方法: 1. 使用有序集合 使用有序集合(如 std::list、std::vector 或其他有序容器)来存储和管理子部件。这种方法可以确保子部件按照特定顺序排列&am…...
duxapp RN 端使用AppUpgrade 进行版本更新
版本更新包含了组件和工具的组合 注册 下面这是 duxcms 入口文件检查更新的注册方法,注册的同时会检查更新 import {request,updateApp,userConfig } from ./utils// 检查app更新 setTimeout(async () > {if (process.env.TARO_ENV rn) {// eslint-disable-n…...
【计网】自定义序列化反序列化(三) —— 实现网络版计算器【下】
🌎实现网络版计算器【下】 本次序列化与反序列化所用到的代码,Tcp服务自定义序列化反序列化实现网络版计算器。 文章目录: 实实现网络版计算器【下】 客户端实现 基于守护进程的改写 🚀客户端实现 在这之前,…...
神经网络中的优化方法(一)
目录 摘要Abstract1. 与纯优化的区别1.1 经验风险最小化1.2 代理损失函数1.3 批量算法和小批量算法 2. 神经网络中优化的挑战2.1 病态2.2 局部极小值2.3 高原、鞍点和其他平坦区域2.4 悬崖和梯度爆炸2.5 长期依赖2.6 非精确梯度2.7 局部和全局结构间的弱对应 3. 基本算法3.1 随…...
Linux 计算机网络基础概念
目录 0.前言 1.计算机网络背景 1.1 独立模式 1.2 网络互联 1.3 局域网(Local Area Network,LAN) 1.4 广域网(Wide Area Network,WAN) 2.协议 2.1什么是协议 2.2协议分层和软件分层 2.3 OSI七层网络模型 2.3…...
qt QGraphicsEllipseItem详解
1、概述 QGraphicsEllipseItem是Qt框架中QGraphicsItem的一个子类,它提供了一个可以添加到QGraphicsScene中的椭圆项。QGraphicsEllipseItem表示一个带有填充和轮廓的椭圆,也可以用于表示椭圆段(通过startAngle()和spanAngle()方法ÿ…...
Python websocket
router.websocket(/chat/{flow_id}) 接口代码,并了解其工作流程、涉及的组件以及如何基于此实现你的新 WebSocket 接口。以下内容将分为几个部分进行讲解: 接口整体概述代码逐行解析关键组件和依赖关系如何基于此实现新功能示例:创建一个新的…...
【MySQL-5】MySQL的内置函数
目录 1. 整体学习的思维导图 2. 日期函数 编辑 2.1 current_date() 2.2 current_time() 2.3 current_timestamp() 2.4 date(datetime) 2.5 now() 2.6 date_add() 2.7 date_sub() 2.8 datediff() 2.9 案例 2.9.1 创建一个出生日期登记簿 2.9.2 创建一个留言版 3…...
深度学习笔记之BERT(三)RoBERTa
深度学习笔记之RoBERTa 引言回顾:BERT的预训练策略RoBERTa训练过程分析静态掩码与动态掩码的比较模型输入模式与下一句预测使用大批量进行训练使用Byte-pair Encoding作为子词词元化算法更大的数据集和更多的训练步骤 RoBERTa配置 引言 本节将介绍一种基于 BERT \t…...
C++知识点总结(59):背包型动态规划
背包型动态规划 一、背包 dp1. 01 背包(限量)2. 完全背包(不限量)3. 口诀 二、例题1. 和是质数的子集数2. 黄金的太阳3. 负数子集和4. NASA的⻝物计划 一、背包 dp 1. 01 背包(限量) 假如有这几个物品&am…...
C++:反向迭代器的实现
反向迭代器的实现与 stack 、queue 相似,是通过适配器模式实现的。通过传入不同类型的迭代器来实现其反向迭代器。 正向迭代器中,begin() 指向第一个位置,end() 指向最后一个位置的下一个位置。 代码实现: template<class I…...
webGL入门教程_04vec3、vec4 和齐次坐标总结
vec3、vec4 和齐次坐标总结 1. vec3 和 vec4 1.1 什么是 vec3 和 vec4? vec3: GLSL 中的三维向量类型,包含 3 个浮点数:(x, y, z)。常用于表示三维坐标、RGB 颜色、法线、方向等。 vec4: GLSL 中的四维向量类型&…...
uniapp中父组件数组更新后与页面渲染数组不一致实战记录
简单描述一下业务场景方便理解: 商品设置功能,支持添加多组商品(点击添加按钮进行增加).可以对任意商品进行删除(点击减少按钮对选中的商品设置进行删除). 问题: 正常添加操作后,对已添加的任意商品删除后,控制台打印数组正常.但是与页面显示不一致.已上图为例,选中尾…...
优化 Conda 下载速度:详细的代理配置和网络管理策略
优化 Conda 下载速度:详细的代理配置和网络管理策略 为了彻底解决使用 Conda 下载 PyTorch 时遇到的速度问题,并确保下载过程稳定可靠,这需要一个详细、综合的技术方案。让我们更深入地分析问题原因,然后详尽地解释采取的解决策略…...
服务器遭受DDoS攻击后如何恢复运行?
当服务器遭受 DDoS(分布式拒绝服务)攻击 后,恢复运行需要快速采取应急措施来缓解攻击影响,并在恢复后加强防护以减少未来攻击的风险。以下是详细的分步指南: 一、应急处理步骤 1. 确认服务器是否正在遭受 DDoS 攻击 …...
MFC音视频播放器-支持电子放大等功能
前言 本播放器在VS2019下开发,使用ffmpegD3D实现视频播放渲染功能。同时本播放器支持录像功能、截图功能、音视频播放功能、码流信息显示、电子放大功能等。D3D的渲染同时支持surface和texture两种方式,电子放大功能是在D3D Texture方式下进行实现。以下…...
c语言编程1.17蓝桥杯历届试题-回文数字
题目描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之…...
el-table 纵向 横向 多级表头
<el-table :data"tableData" class"diaTable":span-method"handleSpanMethod"border:header-cell-style"{background:#292929,color:#fff}"><!-- 纵向表头 --><el-table-column label"纵向表头" width"…...
uniapp开发微信小程序笔记8-uniapp使用vant框架
前言:其实用uni-app开发微信小程序的首选不应该是vant,因为vant没有专门给uni-app设置专栏,可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 但是vant的优…...
分布式项目使用Redis实现数据库对象自增主键ID
hello。大家好,我是灰小猿,一个超会写bug的程序猿! 在分布式项目中,数据表的主键ID一般可能存在于UUID或自增ID这两种形式,UUID好理解而且实现起来也最容易,但是缺点就是数据表中的主键ID是32位的字符串&a…...
npm-运行项目报错:A complete log of this run can be found .......npm-cache_logs\
1.问题 没有找到对应的某种依赖,node_modules出现问题。 2.解决 (1)查看对应依赖是否引入或者是由于合并分支错误 引入js或依赖不存在。谨慎删除依赖包 (2)查找对应引入依赖进行安装最后解决方法-删除依赖包清除缓存 npm cache clean --force (2)重新向同事引入…...
SolarCube: 高分辨率太阳辐照预测基准数据集
太阳能作为清洁能源在减缓气候变化中的作用日益凸显,其稳定的供应对电网管理至关重要。然而,太阳辐照受云层和天气变化的影响波动较大,给光伏电力的管理带来挑战,尤其是在调度、储能和备用系统管理方面。因此,精确的太…...
华为小米苹果三星移动设备访问windows共享文件夹windows11
如果移动设备和windows电脑都在同一个局域网内,可以用移动设备访问windows11的共享文件夹 1、设置共享文件夹 2、添加everyone用户即可 3、查看ip地址 4、在华为手机上点击文件管理,里面有个网上邻居 5、正常情况下,华为手机会扫描到同一局域…...
网络安全三防指南:只防病毒不安全
5月17日,瑞星全球反病毒监测网截获一个恶性病毒,由于该病毒的破坏能力和当年著名的CIH病毒几乎完全一样,因此瑞星将该病毒命名为“新CIH”病毒。被“新CIH”感染的电脑,主板和硬盘数据将被破坏,致使电脑无法启动&#…...
怎么做坑人的网站/自学seo能找到工作吗
创建一个控制台程序和一个类库, 在控制台创建一个匿名对象。然后再在类库中訪问它。代码例如以下: namespace ConsoleApplication1 {class Program{static void Main(string[] args){var obj new { Id 1 };var c new ClassLibrary1.TestClass();c.Test(obj);Cons…...
电子商务网站开发费用/h5网站制作平台
5V 输入升压开关型双节锂电池充电管理芯片 -FS5080ES FS5080ES 是一款 3.6V-5.5V/2A 输入, 1A 输出,双节锂电池/锂离子电池充电的异步升压充电控制器。具有完善的充电保护功能。针对不同的应用场合,芯片可以通过方便地调节外部电阻的阻值来改…...
泊头网站建设/宁波seo网站排名优化公司
为什么80%的码农都做不了架构师?>>> ./config --prefix/usr/local/OpenSSL -fPIC shared 转载于:https://my.oschina.net/eduosi/blog/782783...
自己做的网站怎么爬数据/搜索引擎推广的常见形式有
说起独立博客的技术演变,从数据库到纯文本放git是一大进步,从HTML到markdown又是一大进步。 解析技术有没有进步呢?既然markdown是纯文本了,再用PHP/Python/Ruby去实时解析,多么多此一举啊(比如github用的J…...
做建筑钢材的b2b网站有哪些/游戏代理300元一天
目录 负载均衡配置:修改Nginx配置文件 Nginx负载均衡策略优化: 1.轮询(默认方式) 2.权重:通过weight参数在轮询策略的基础上设置被访问的几率. (各节点机器硬件配置不一致时可使用) 3.ip_hash(适合有状态的服务):指定负载均衡按照客户端ip进行分配,此策略确 保用一个ip客户端…...
网站服务器租用需要什么材料/营销推广策略有哪些
计算机等级考试《二级Java语言程序设计》题库 完整版:http://zgw.100xuexi.com/SubItem/IndexInfoDetail.aspx?ide63f251c-31b8-4493-b618-8cbd15d6db9c...