当前位置: 首页 > news >正文

docker(四)使用篇二:docker 镜像

 在上一章中,我们介绍了 docker 镜像仓库,本文就来介绍 docker 镜像。

一、什么是镜像

docker 镜像本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。

我们可以把 Docker 镜像 理解成一个模板,通过这个模板,可以实例化出来很多容器

docker 镜像里面由一层层 Union FS(联合文件系统)组成

镜像生活案例

镜像相当于我们 java 或者 C++中的类,相当于一个模板,可以很方便的构建出来不同的对象。

docker 镜像的组合层核心:联合文件系统(Union FS)

联合文件系统可以将几层文件目录挂载到一起,形成一个虚拟文件系统。

每一层文件系统我们叫做一层 layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是 docker 镜像中每一层文件系统都是只读的。(PS:联合文件系统的读写速度都比较慢)

构建镜像的时候,会从一个最基本的操作系统开始构建;每个构建的操作都相当于做一层文件目录的修改,即增加了一层文件系统。

一层层往上叠加,上层的修改会覆盖底层该位置的可见性。这也很容易理解,就像上层把底层遮住了一样。当使用的时候,只会看到一个完全的整体,不知道里面有几层,也不清楚每一层所做的修改是什么。

联合文件系统使得容器可以拥有自己的文件视图(即容器层),同时共享宿主机或者其他容器的基础镜像层(只读层)。这种方式不仅减少了存储空间的使用,而且提高了容器启动速度,因为只需要复制必要的镜像即可创建新的容器

联合文件系统镜像分层生活案例

我们以日常的地板为例,开发商的房子提供给用户的时候一般是做好了地暖,而这些地暖其实是一层一层添加的,最底层的钢筋水泥层,然后添加保温层,采暖管,再铺设水泥层,到最后交付的时候家家户户都是水泥面,这些层一般是不可修改的。

最上层用户一般会再铺设商木地板或者地板砖每家每户的选择不一样,相当于我们镜像的容器层。

二、为什么需要镜像

1、通过打包,解决环境不一致问题

在部署应用时,原先是通过手工 / 写一些脚本的方式进行部署。这样部署面临的最大问题就是云端和本地环境可能不一致。用户为每个应用打包过程比较繁琐,需要配置和修改等操作,非常费劲。 Docker 镜像就是为了解决这个小小的打包功能,突然一夜之间成名。

那么,读者可能会猜测 Docker 镜像就是个压缩包,是的,猜对了,它就像一个压缩包文件。那么它是如何解决 Paas 时代所面临的云端和本地一致性问题?

很简单,它是把一个镜像制作成一个完整的操作系统,有所有文件和对应的目录结构,这样的压缩包跟你本地和测试环境用的操作系统一摸一样。

2、减少空间占用,加速软件开发

docker 最大的贡献就是定义了容器镜像的分层的存储格式docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。

docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,也可以很方便的将其用于个人用途或与其他 Docker 用户公开共享。

三、核心:镜像相关命令

命令清单

命令别名功能备注
docker pulldocker image pull从镜像仓库中拉取镜像和镜像仓库命令相同,亦可以归类为镜像命令
docker pushdocker image push推送镜像到仓库和镜像仓库命令相同,亦可以归类为镜像命令
docker images
docker image
ls / docker
image list
列出本地镜像必须掌握
docker tagdocker image tag给本地某个镜像打标签(标记版本),在推送镜像到仓库时比较有用必须掌握
docker rmi
docker image
rm / docker
image remove
删除本地某个镜像必须掌握
docker builddocker image build通过 dockerfile 制作镜像必须掌握
docker savedocker image save把制定镜像保存成 tar 格式的归档文件必须掌握
docker loaddocker image load导入使用 docker save 保存的 tar 格式的镜像文件必须掌握
docker image inspect查看镜像的详细信息必须掌握
docker history
docker image
history
查看镜像历史
docker import
docker image
import
从归档文件 docker export 中创建镜像。 (与容器 docker export 对应,在下一章容器章节讲解)
docker prune
删除不使用的镜像

 1、docker images

# RESPOSITORY 指的是镜像所在仓库名
docker images [关键参数] [RESPOSITORY[:TAG]]

关键参数

无参情况:列出本地所有镜像

-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

--digests:显示镜像的摘要信息;

-f:显示满足条件的镜像;

--format:指定返回值的模板文件;

--no-trunc:显示完整的镜像信息;

-q :只显示镜像 ID

功能: 列出本地镜像

# 列出本地全部镜像
docker images
# 列出本地镜像中 REPOSITORY 为 ubuntu 的镜像列表。
docker images ubuntu

2、docker tag

# SOURCE_IMAGE:原镜像名
# TARGET_IMAGE:目标镜像名(可以加上仓库地址,就可以归入某一仓库)
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

功能: 给本地镜像打标签,并归入某一仓库(目的通常为推送做准备)

可以看见,给 nginx 镜像打了个标签,仓库中会多出一个相同镜像ID不同 REPOSITORY 的镜像,这个镜像就可以作为推送到仓库的一个版本

 3、docker rmi

# 可以同时删除多个镜像
docker rim [关键参数] 镜像名....

关键参数

-f:强制删除;

--no-prune:不移除该镜像的过程镜像,默认移除;

 功能:删除指定镜像

(PS:删除前需要把引用了该镜像的容器删掉之后才能删除镜像;由于是比较暴力的删除镜像,用的较少,一般使用 docker rm 删除容器)

成功删除

4、docker save

# 可以同时把多个镜像归档到一个文件
docker save [关键参数] 镜像名...

 功能:把指定的镜像保存成 tar 归档文件,便于在各个服务器上分发

关键参数

-o:把镜像保存到哪一个文件中,(可以同时写上路径,就保存在那个路径中;只写文件名则是默认保存在当前文件夹中) 

成功归档

 5、docker load

docker load [关键参数]

功能:把 tar 文件再加载成镜像

关键参数

--input , -i : 导入的文件的文件名,代替 STDIN

--quiet , -q : 精简输出信息。(默认是一层层导入的,会全部展示)

 

可以发现精简了很多

6、docker image inspect

# 可以同时查看多个镜像
docker image inspect [关键参数] 镜像名...

 功能:查看镜像的详细信息

(PS:如果是 docker inspect 的话,docker 会自动判断是镜像还是容器,然后显示信息)

查看详细信息

7、docker history

docker history [关键参数] 镜像名

功能:显示镜像的历史 

关键参数:

-H , --human:大小和日期采用人容易读的格式展现

--no-trunc:显示全部信息,不要隔断(不截断的话像 ID 等都会很长)

-q, --quiet:只显示镜像 id 信息

从左往右每一列的意义依次是:镜像名、镜像创建时间、通过什么命令创建(dockerfile 命令,后文会说)、镜像大小、注释

8、docker import

其与容器 docker export 对应,二者搭配使用,因此将在下一章容器进行讲解

9、docker image prune

docker image prune [关键参数]

功能:删除当前未使用的镜像

(PS:无参的话,会删除虚悬镜像,即那些既没有标签又被没有任何容器引用的镜像)

关键参数:

-a , --all:删除全部不使用的镜像(只要没有容器使用,就被视作未使用镜像,比较危险,慎用) 

--filter filter:指定过滤条件;

-f, --force:不提示是否删除;

无参情况,删除虚悬镜像;加上 -a ,会把所有未被容器使用的镜像删除,比较危险!

 

10、docker build

docker build [关键参数] PATH | URL | -

功能:用于使用 dockfile 创建镜像(会在 dockerfile 制作镜像章节详细讲解)

关键参数:

--build-arg=[] :设置镜像创建时的变量;

-f :指定要使用的 Dockerfile 路径;

--label=[] :设置镜像使用的元数据;

--no-cache :创建镜像的过程不使用缓存;

--pull :尝试去更新镜像的新版本;

--quiet, -q :安静模式,成功后只输出镜像 ID

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构

建中为一个镜像设置多个标签。

--network: 默认 default。在构建期间设置 RUN 指令的网络模式

相关文章:

docker(四)使用篇二:docker 镜像

在上一章中,我们介绍了 docker 镜像仓库,本文就来介绍 docker 镜像。 一、什么是镜像 docker 镜像本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。 我们可以把…...

算法练习:19.JZ29 顺时针打印矩阵

错误原因 总体思路有,但不够清晰,一直在边调试边完善。这方面就养成更好的构思习惯,以及涨涨经验吧。 分析: 思路:找规律 两个坑: 一次循环的后半段是倒着遍历的是矩阵不是方阵,要考虑行列…...

如何使用 Solana Yellowstone gRPC 重新连接和重放插槽

Yellowstone gRPC 是一个功能强大、可用于生产环境且经过实战检验的工具,用于流式传输实时的 Solana 数据。但在实际条件下,网络中断或服务器重启可能导致连接中断。如果没有适当的重连策略,你的应用程序可能会错过区块链的关键更新。 为了防…...

踩坑:uiautomatorviewer.bat 打不开

错误信息 运行 sdk\tools\bin\uiautomatorviewer.bat 报错 -Djava.ext.dirs..\lib\x86_64;..\lib is not supported. Use -classpath instead. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 原因 java版…...

天能股份SAP系统整合实战:如何用8个月实现零业务中断的集团化管理升级

目录 天能股份SAP系统整合案例:技术驱动集团化管理的破局之路 一、企业背景:新能源巨头的数字化挑战 二、项目难点:制造业的特殊攻坚战 1. 生产连续性刚性需求 2. 数据整合三重障碍 3. 资源限制下的技术突围 三、解决方案:S…...

oracle主备切换参考

主备正常切换操作参考:RAC两节点->单机 (rac和单机的操作区别:就是关闭其它节点,剩一个节点操作即可) 1.主库准备 检查状态 SQL> select inst_id,database_role,OPEN_MODE from gv$database; INST_ID DATA…...

PHP 与 面向对象编程(OOP)

PHP 是一种支持面向对象编程(OOP)的多范式语言,但其面向对象特性是逐步演进而非原生设计。以下是关键分析: 1. PHP 对面向对象编程的支持 核心 OOP 特性: 类和对象: PHP 支持通过 class 关键字定义类&…...

预测模型开发与评估:基于机器学习的数据分析实践

在当今数据驱动的时代,预测模型已成为各行各业决策制定的核心工具。本文将分享我在COMP5310课程项目中开发预测模型的经验,探讨从数据清洗到模型优化的完整过程,并提供详细的技术实现代码。 ## 研究问题与数据集 ### 研究问题 我们的研究聚焦…...

2026《数据结构》考研复习笔记四(绪论)

绪论 前言时间复杂度分析 前言 由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍,圈画下来疑难知识点,有了大致的知识框架,现在的任务就是将知识点逐个理解透彻,并将leetcode刷题与课后刷题相结合。因此此后的过…...

2025-5-16Vue3快速上手

1、reactive创建 对象类型的响应式数据 (1) (2)reactive包裹的对象类型数据是Proxy对象类型 2、ref 创建对象类型的响应式数据 (1)使用js修改ref的数据时依然要加.value (2)ref的底层是用reactive做响应式数据的,因为…...

Lua中使用module时踩过的坑

在lua中设置某个全局对象(假如对象名为LDataUser)为nil时, LDataUser并不会变成nil, 但在有些情况下设置LDataUser nil时却真变成了nil,然后会导致后续再使用LDataUser时会抛nil异常, 后来发现是使用module搞的鬼,下面看看豆包AI给的解释,还…...

WinSCP用户管理FTP详解

1、下载winscp 官方下载地址:https://winscp.net/eng/index.php 2、登录ftp 3、桌面快捷键 4、首页介绍 5、文件搜索 模糊查询,关键字两边必须加’ * ‘号 6、编码报错 报错原因:使用’936(ANS/OEM-简体中尉GBK)’编…...

python基础语法(三-中)

基础语法3&#xff1a; 2.列表与元组&#xff1a; <1>.列表、元组是什么&#xff1f; 都用来存储数据&#xff0c;但是两者有区别&#xff0c;列表可变&#xff0c;元组不可变。 <2>.创建列表&#xff1a; 创建列表有两种方式&#xff1a; [1].a 【】&#x…...

NLP双雄争霸:GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码

NLP双雄争霸&#xff1a;GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码 前言&#xff1a; 在自然语言处理&#xff08;NLP&#xff09;的版图上&#xff0c;GPT与BERT如双子星般照亮了智能时代的语言星空。一个是凭借千亿参数横扫生成任务的“文本造物主”&…...

JS手写代码篇---手写 instanceof 方法

2、手写 instanceof 方法 instancecof用于检测一个对象是否是某个构造函数的实例。它通常用于检查对象的类型&#xff0c;尤其是在处理继承关系时。 eg: const arr [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true那这是…...

浮点数截断法:四舍五入的精确模拟

理论解释&#xff1a; 1. 目标 假设 a 3.14159&#xff0c;我们想四舍五入到 小数点后两位&#xff08;即 3.14 或 3.15&#xff09;。 2. 步骤拆解 (1) a * 100 把 a 放大 100 倍&#xff0c;让小数点后两位变成整数部分&#xff1a; 3.14159 * 100 314.159 (2) 0.5 关…...

c++ 类的语法3

测试下默认构造函数。demo1&#xff1a; void testClass3() {class Demo { // 没显示提供默认构造函数&#xff0c;会有默认构造函数。public:int x; // 普通成员变量&#xff0c;可默认构造};Demo demo1;//cout << "demo1.x: " << demo1.x << en…...

EasyExcel导出excel再转PDF转图片详解

封装EasyExcel导出工具类 相关的依赖自己网上搜索加上&#xff0c;这里不在阐述 Slf4j Service public class AgentExcelUtils {public String syncDynamicHeadWrite(String fileName,String sheetName,List<List<String>> headList,List<?> data) throws…...

【知识产权出版社-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

Oc语言学习 —— 重点内容总结与拓展(上)

隐藏和封装 有四种访问控制符&#xff1a;private(当前类访问权限)&#xff0c;package(与映像访问权限相同)&#xff0c;protect(子类访问权限)&#xff0c;public(公共访问权限)。 访问控制符 1.private&#xff08;当前类访问权限&#xff09; 成员变量只能在当前类的内部…...

全面且深度学习c++类和对象(上)

文章目录 过程和对象类的引入&#xff0c;类的定义类的访问限定符及封装类的访问限定符封装 类的实例化类大小内存对齐规则&#xff1a; this指针this特性 过程和对象 C语言面向过程设计&#xff0c;c面向对象设计&#xff0c; 举例&#xff1a;洗衣服 C语言&#xff1a;放衣服…...

QML元素 - RectangularGlow

QML 的 RectangularGlow 是 Qt Quick Effects 模块中专门为矩形元素设计的外发光效果&#xff0c;适用于为卡片、按钮、面板等矩形或圆角矩形添加柔和的边缘光晕&#xff0c;相比通用 Glow 更高效且支持圆角匹配。以下是详细使用技巧和优化指南&#xff1a; 1. 基本用法 impor…...

GraphPad Prism项目的管理

《2025新书现货 GraphPad Prism图表可视化与统计数据分析&#xff08;视频教学版&#xff09;雍杨 康巧昆 清华大学出版社教材书籍 9787302686460 GraphPadPrism图表可视化 无规格》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 项目…...

uniapp自定义日历计划写法(vue2)

文章目录 uniapp自定义日历计划写法(vue2)1、效果2、实现源码前言:我们有时候需要实现的日历找不到相应的插件的时候,往往需要手动去写一个日历,以下就是我遇到这样的问题时,手搓出来的一个解决方案,希望可以帮助到更多的人。创作不易,请多多支持uniapp自定义日历计划写…...

差分探头为什么要选择使用屏蔽双绞线

市面上很多各种品牌的差分探头&#xff0c;其使用的线缆都使用了屏蔽双绞线&#xff08;STP&#xff09;&#xff0c;这主要是因为在测试过程中因高压线路周围强电场或磁场在信号线与地线间感应出共模电压而产生的电磁耦合效应会对测试结果产生干扰&#xff0c;而屏蔽双绞线可以…...

Qt—用SQLite实现简单的注册登录界面

1.实现目标 本次实现通过SQLite制作一个简易的登录窗口&#xff0c;当点击注册按钮时&#xff0c;登录窗口会消失&#xff0c;会出现一个新的注册界面&#xff1b;完成注册或退出注册时&#xff0c;注册窗口会消失&#xff0c;重新出现登录窗口。注册过的用户信息会出现在SQLi…...

Visual Studio旧版直链

[Visual Studio 2019 社区版]&#xff08;https://aka.ms/vs/16/release/vs_community.exe&#xff09; [Visual Studio 2019 专业版]&#xff08;https://aka.ms/vs/16/release/vs_professional.exe&#xff09; [Visual Studio 2019 企业版]&#xff08;https://aka.ms/vs/16…...

elementUI源码学习

学习笔记。 最近在看element的table表格优化&#xff0c;又去看了一下element源码框架。element 的架构是很优秀&#xff0c;通过大量的脚本实现工程化&#xff0c;让组件库的开发者专注于事情本身&#xff0c;比如新加组件&#xff0c;一键生成组件所有文件&#xff0c;并完成…...

【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 搜索插入位置搜索二维矩阵在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组寻找旋转排序数组中的最小值…...

捌拾伍- 量子傅里叶变换 (3)

前期的内容在 捌拾叁- 量子傅里叶变换 前期的内容在 捌拾肆- 量子傅里叶变换 (2) 9. 之前的 之前的公式写错了&#xff01; Markdown 的 KaTeX 真难用&#xff01;&#xff01;&#xff01; 而且之前的公式是从 j1 – jn &#xff0c;但量子计算都是从 0 开始的&#xff0c…...

探索ISBN查询接口:为图书管理系统赋能

在开发图书管理应用时&#xff0c;ISBN&#xff08;国际标准书号&#xff09;查询接口是获取图书元数据的核心工具。通过扫描图书条形码得到ISBN&#xff0c;再调用API即可轻松获取书名、作者、出版社、封面等信息。本文详细介绍几种主流ISBN查询API&#xff0c;包括国际和国内…...

Linux 内核中 inet_accept 的实现与自定义传输协议优化

在 Linux 内核中,网络协议栈的核心功能由一系列精心设计的函数实现,其中 inet_accept 是 TCP 协议接受新连接的关键入口。本文将深入分析该函数的实现逻辑,并探讨在实现自定义传输协议时如何权衡性能优化与代码简化。 一、inet_accept 函数解析 1. 功能概述 inet_accept 是…...

SAP-ABAP:SAP DMS(文档管理系统)的详细说明,涵盖其核心功能、架构、配置及实际应用

1. DMS 概述 SAP DMS&#xff08;Document Management System&#xff09;是SAP系统中用于管理企业文档的核心模块&#xff0c;支持文档的全生命周期管理&#xff08;创建、存储、版本控制、审批、归档&#xff09;。它与其他模块&#xff08;如物料管理MM、生产计划PP、设备维…...

前端方法的总结及记录

个人简介 &#x1f468;‍&#x1f4bb;‍个人主页&#xff1a; 魔术师 &#x1f4d6;学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全栈发展 &#x1f6b4;个人状态&#xff1a; 研发工程师&#xff0c;现效力于政务服务网事业 &#x1f1e8;&#x1f1f3;人生格言&…...

【Arthas实战】常见使用场景与命令分享

简介: Arthas是一款Java诊断工具&#xff0c;适用于多种场景&#xff0c;如接口响应变慢、CPU占用过高、热更新需求等。其核心命令包括实时监控面板&#xff08;dashboard&#xff09;、线程状态查看&#xff08;thread&#xff09;、方法调用链路追踪&#xff08;trace&#x…...

SearchClassUtil

路径扫描工具SearchClassUtil&#xff0c;用于扫描指定包&#xff08;XXXX&#xff09;下的所有.class文件&#xff0c;并将它们的全限定类名&#xff08;如tomcat.SearchClassUtil&#xff09;收集到列表中返回。该工具使用递归文件遍历和反射机制&#xff0c;是实现 Spring 框…...

开放世界地形渲染:以三角洲行动为例(下篇)

本文主要介绍如何提升室外画面渲染的品质 版权声明 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本&#xff1a;见文末 渲染品质提升 要提升画面的品质&#xff0c;就是去提升渲染的画…...

GpuGeek 网络加速:破解 AI 开发中的 “最后一公里” 瓶颈

摘要&#xff1a; 网络延迟在AI开发中常被忽视&#xff0c;却严重影响效率。GpuGeek通过技术创新&#xff0c;提供学术资源访问和跨国数据交互的加速服务&#xff0c;助力开发者突破瓶颈。 目录 一、引言&#xff1a;当算力不再稀缺&#xff0c;网络瓶颈如何破局&#xff1f; …...

关于 Web安全:1. Web 安全基础知识

一、HTTP/HTTPS 协议详解 1. HTTP协议基础 什么是 HTTP&#xff1f; HTTP&#xff08;HyperText Transfer Protocol&#xff09;是互联网中浏览器和服务器之间传输数据的协议&#xff0c;基于请求-响应模式。它是一个无状态协议&#xff0c;意思是每次请求都是独立的&#x…...

debugfs:Linux 内核调试的利器

目录 一、什么是 debugfs&#xff1f;二、debugfs 的配置和启用方式2.1 内核配置选项2.2 挂载 debugfs2.3 Android 系统中的 debugfs 三、debugfs 的典型应用场景3.1 调试驱动开发3.2 内核子系统调试3.3 性能分析 四、常见 debugfs 子目录与功能示例4.1 /sys/kernel/debug/trac…...

Spyglass:跨时钟域同步(同步使能)

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 同步使能方案主要用于数据信号跨时钟域同步&#xff0c;该方案将一个控制信号同步至目标时钟域并用其作为数据信号的捕获触发器的使能信号&#xff0c;如图1所示…...

安装Minikube

环境 CentOS7 参考 minikube start | minikube 创建虚拟机,参考 模拟Gitlab安装-CSDN博客 下载二进制包 curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 报错不能解析host,配置host 下载成功 安装 sudo install minikube-linux-am…...

图像锐化调整

一、背景介绍 之前找多尺度做对比度增强时候&#xff0c;发现了一些锐化相关算法&#xff0c;正好本来也要整理锐化&#xff0c;这里就直接顺手对之前做过的锐化大概整理了下&#xff0c;方便后续用的时候直接抓了。 这里整理的锐化主要是两块&#xff1a;一个是参考论文&#…...

【CanMV K230】AI_CUBE1.4

《k230-AI 最近小伙伴有做模型的需求。所以我重新捡起来了。正好把之前没测过的测一下。 这次我们用的是全新版本。AICUBE1.4.dotnet环境9.0 注意AICUBE训练模型对硬件有所要求。最好使用独立显卡。 有小伙伴说集显也可以。emmmm可以试试哈 集显显存2G很勉强了。 我们依然用…...

STM32外设AD-定时器触发 + DMA读取模板

STM32外设AD-定时器触发 DMA读取模板 一&#xff0c;方法思路二&#xff0c;定时器基础与配置1&#xff0c;定时器时钟源 (Clock Source)2&#xff0c;预分频器 (Prescaler - PSC)3&#xff0c;自动重装载寄存器 (Auto-Reload Register - ARR) / 周期 (Period)4&#xff0c;触…...

数据库故障排查指南:从入门到精通

1. 常见数据库故障类型 1.1 连接故障 数据库连接超时连接池耗尽网络连接中断认证失败1.2 性能故障 查询执行缓慢内存使用过高CPU使用率异常磁盘I/O瓶颈1.3 数据故障 数据不一致数据丢失数据损坏事务失败2. 故障排查流程 2.1 初步诊断 -- 检查数据库状态SHOW STATUS;SHOW PRO…...

【AT32】 AT32 移植 Freemodbus 主站

基于野火开发板 at32f437zgt6芯片 和at32 官方开发工具 移植了网上一套开源的freemodbus 主站 这里对modbus 协议不做过多的讲解 主要已实现代码为主 AT32 Work Bench 参考之前我之前的配置 与stm32cubemx软件差不多 注意485芯片的收发脚配置即可 AT32 IDE 说实话这软件太垃…...

内网环境下如何使用ntpdate实时同步时间

背景介绍 NTP&#xff08;Network Time Protocol&#xff09;是一种网络协议&#xff0c;用于同步计算机系统的时间。ntpdate是一个用于手动同步时间的命令行工具&#xff0c;它可以从指定的NTP服务器获取当前时间并更新本地系统时间。 ntpdate 服务介绍 功能&#xff1a;ntp…...

python版本管理工具-pyenv轻松切换多个Python版本

在使用python环境开发时&#xff0c;相信肯定被使用版本所烦恼&#xff0c;在用第三方库时依赖兼容的python版本不一样&#xff0c;有没有一个能同时安装多个python并能自由切换的工具呢&#xff0c;那就是pyenv&#xff0c;让你可以轻松切换多个Python 版本。 pyenv是什么 p…...

工商总局可视化模版 – 基于ECharts的大数据可视化HTML源码

概述 在大数据时代&#xff0c;数据可视化已成为各行各业进行数据分析和决策的重要工具。幽络源今天为大家带来一款基于ECharts的工商总局数据可视化HTML模版&#xff0c;帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范&#xff0c;功能完善&#xff0c;适合…...