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

Docker基础-常见命令与数据卷

在这里插入图片描述

(一)常见命令

一、Docker常见命令

在这里插入图片描述

  1. 使用 docker pull 用来拉取仓库的镜像文件到本地;docker images 用于查看镜像文件;docker rmi 用于删除镜像文件
  2. docker build 用于自定义镜像,将来自己写的java项目也是通过这种方式来构建和打包;同时也可以通过 docker save 命令将项目文件保存到本地变为压缩文件;docker load 也就可以把该压缩文件加载到其他主机的镜像文件当中。
    或者也可以通过 docker push 将本地镜像文件推到镜像仓库(可以是公用仓库或公司的私服)。
  3. 使用 docker run 来创建并运行容器;docker stop 来停止容器,但是停止的是容器内部的进程,容器是仍然存在的;使用 docker start 就可以启动容器内部的进程;根据 docker ps 就可以来查看进程的运行状态;docker rm 用于删除容器;还可以通过 docker logs 来查看容器的运行日志;以及 docker exec 来进入到容器内部
  • 在官方文档当中就能查看到Docker的全部命令
    在这里插入图片描述

二、案例

在这里插入图片描述

  1. 搜索Nginx镜像
    在这里插入图片描述
    就可以查看到Nginx的官方说明文档,并且可以复制拉取镜像文件的命令
    在这里插入图片描述
  2. docker pull nginx
    在这里插入图片描述
//拉取 Nginx 镜像
docker pull nginx
  1. docker images
    在这里插入图片描述
//查看本地镜像列表
docker images
  • docker save
    查看docker save命令可以跟上其他什么参数
    options(-o)可选项用于写文件名称,也就是说要保存的镜像将要存到哪个地方
    在这里插入图片描述
    在这里插入图片描述
//保存镜像
docker save -o xxx.tar xxx:latest //latest 表明某一镜像的最新版本
  • docker rmi
    在这里插入图片描述
    此时只需要重新加载Nginx.tar就能获取到它的镜像
//删除镜像
docker rmi xxx
  • docker load
    在这里插入图片描述
    在这里插入图片描述
//加载镜像
docker load
  1. docker run
    在这里插入图片描述
    container id是当前容器的唯一标识id,status代表状态(Up则是已经启动)
//创建并运行镜像
docker run -d --name xxx -p xx:xx xxx
  1. docker ps
    可以加上–format参数对输出内容做格式化
    在这里插入图片描述
    默认情况下docker ps命令查看的是正在运行的容器,但是加上-a参数就可以查看全部容器
    在这里插入图片描述
//查看正在运行的容器
docker ps (-a)
  1. docker stop
    在这里插入图片描述
//停止容器
docker stop xxx
  1. docker start
    在这里插入图片描述
//开启容器
docker start xxx
  • docker logs查看容器产生的日志
    在这里插入图片描述
    加上-f参数就能持续跟踪该日志
    在这里插入图片描述
    在这里插入图片描述
//查看容器产生的日志
docker logs (-f) xxx
  1. docker exec
    exec指的是executed执行;-it指的是添加一个可交互终端,因为容器内部的隔离环境相当于模拟了一台计算机,我们进入之后要想实现交互就要使用命令行交互,也就需要一个终端,使用bash命令
    在这里插入图片描述
    可以进入到mysql的容器中再来操作mysql数据库,也就是通过容器内部的命令直接访问mysql
    在这里插入图片描述
//进入容器
docker exec -it xxx bash
  1. docker rm
    注意该命令只能删除不在运行当中的容器
    在这里插入图片描述
    或者可以加-f参数来强制删除
    在这里插入图片描述
//删除容器
docker rm xxx (-f)

三、命令别名

前面提到用docker ps命令来查看容器状态得到的数据非常多、混乱,所以往往会加上–format参数来对输出内容进行格式化,那么就会用到一个table语法用于选择要查看哪些信息。
在这里插入图片描述
但是因为这个命令这样子写太长了,就需要来简化该命令,也就要用到Linux的技巧-命令别名。

  1. 进入root权限下的.bashhrc文件夹中
    在这里插入图片描述
    在这里插入图片描述
    可以看到文件中已经存在一些人为/系统添加的别名,用alias关键词用于标记。例如:" rm -i "是一个原始命令,被写成了别名 rm 。
  2. source命令用于让该文件生效
    在这里插入图片描述
    执行dps命令,发现他与之前的docker ps --formet命令的执行结果相同
    在这里插入图片描述
    在这里插入图片描述

(二)数据卷

在这里插入图片描述

一、案例介绍

在这里插入图片描述
当我们运行nginx容器后通过端口映射就可以在主机上连接到nginx线程
在这里插入图片描述
到Nginx的官方文档当中查看如何自定义静态资源,以及指定的静态html目录存放在哪个目录下
在这里插入图片描述
进入到nginx容器以及存放html静态资源的文件夹下就能查看到当前存在的静态html文件
在这里插入图片描述
但是并不能使用vi命令对文件进行直接修改
在这里插入图片描述
因为虽然docker的镜像为应用程序的运行提供了所需系统函数库、系统环境,但是它里面只包含当前应用运行所必备的这些系统函数。所以在Nginx镜像当中就不需要vi、ll 这些命令。

因此要想去对Nginx内部的资源进行修改,就需要去用到数据卷

二、数据卷介绍

在这里插入图片描述
比如现在有一个Nginx容器,里面存在许多目录,而其中一个是用来存放html静态资源的,还有一个conf用来保存它的配置文件。将来我们可能需要对这两个文件进行修改,而在容器内直接修改又非常麻烦,那么就可以利用docker去创建两个数据卷,分别对应html与conf。并且在宿主机(也就是该台虚拟机)中给这两个数据卷创建对应的真实目录及data文件,最后也会将数据卷映射到对应目录下的data文件当中。

而既然数据卷是容器目录与宿主机目录之间映射的桥梁,那么就需要让容器的目录跟数据卷做挂载,两者之间进行关联,最后就能让容器的conf目录与宿主机的conf目录下的data目录产生关联。

关联以后docker就会实现宿主机目录与容器目录的双向绑定。以后只需要在宿主机的conf目录下的data目录下创建一个文件,就会自动加载到容器内的conf目录下,反过来的操作也是同样可行的。

以后也就只需要在宿主机上进行操作就可以影响到容器内。

三、数据卷的相关命令

(1)命令介绍

在这里插入图片描述
volumn参数指的是数据卷。在创建好数据卷以及创建宿主机目录(自动创建)后,接下来就需要去挂载容器目录。

(2)案例示范

在这里插入图片描述
刚才已经看到了nginx的容器内目录,也就是需要挂载的目录
在这里插入图片描述

  1. 创建容器
    在这里插入图片描述
    查看数据卷创建情况
    在这里插入图片描述
    CreatedAt创建时间;Mountpoint挂载点(挂载在宿主机的哪个位置)
//查看数据卷信息
docker volume ls
  1. 部署静态资源
    进入该宿主机目录,就能查看到该index.html文件,我们也就是需要对它来进行修改
    在这里插入图片描述
    在这里插入图片描述
    因为我们使用的是MobaXterm,是比较高级的Shell软件,可以实现对虚拟机内的文件直接修改,也可以直接插入资源文件
    在这里插入图片描述
    在这里插入图片描述
    进入nginx容器内的html目录下,就能看到我们修改的文件资源
    在这里插入图片描述

四、本地目录挂载

在实际应用当中,容器的挂载方式不止以上这一种,接下来就来介绍一下其他的挂载方式

(1)案例示范

在这里插入图片描述

①查看mysql容器是否有挂载数据卷
  1. docker inspect查看容器详情
    查看Nginx容器
    在这里插入图片描述
    可以看到它的挂载信息
    在这里插入图片描述
    查看Mysql容器的详细信息
    在这里插入图片描述
    同样也查看到了挂载信息
    在这里插入图片描述
    但是明明我们在创建Mysql容器时并没有去挂载数据卷,但是却自己挂载好了且有自己的名字
//查看容器详情
docker inspect xxx
②查看Mysql的挂载目录

在该目录下可以看到Mysql的data目录
在这里插入图片描述
当我们在Mysql中创建一个docker数据库并且创建一个test表结构
在这里插入图片描述
可以发现在目录下出现了该docker目录以及test表结构文件
在这里插入图片描述
在这里插入图片描述

因为Mysql在使用的过程中会不断创建新的文件,若不把它保存在宿主机文件而保存在容器当中,那么容器体积就会越来越大,将来想要对容器做迁移就非常不方便。因此处于数据解耦的考虑,这种挂载操作是非常合理的,所以它自动完成了,只不过现在这种做法用的是匿名卷。

而因为匿名卷的名字是随机生成的,很复杂。
当我们要去升级Mysql的版本时直接删除Mysql会发现数据仍然会存在
在这里插入图片描述
但是重新创建Mysql容器又会重新创建一个数据卷,原来宿主机内的旧数据就等于是丢失了。所以使用这种匿名卷是非常复杂、麻烦的,也就可以使用本地目录挂载,把数据目录挂载到任意目录下。

(2)使用本地目录挂载来完成案例

在这里插入图片描述
而要想知道MySQL的配置文件、初始化脚本在哪里,就需要到官方镜像文档当中查看。

  1. 配置文件目录:
    在这里插入图片描述
  2. 初始化脚本目录:
    在这里插入图片描述
  3. 数据目录:
    在这里插入图片描述
③执行
  1. 先创建出三个目录
    在这里插入图片描述
    再执行创建与运行容器的命令
    在这里插入图片描述
    启动成功
    在这里插入图片描述
    再开查看data目录,发现产生了许多数据,说明容器目录成功挂载到了本地目录
    在这里插入图片描述
    验证配置文件也成功挂载,发现所有字符编码都配置为了utf8
    在这里插入图片描述
    在这里插入图片描述

推荐把文件挂载到一个固定的、自己设置的目录,方便以后容器迁移或重新创建。

相关文章:

Docker基础-常见命令与数据卷

(一)常见命令 一、Docker常见命令 使用 docker pull 用来拉取仓库的镜像文件到本地;docker images 用于查看镜像文件;docker rmi 用于删除镜像文件docker build 用于自定义镜像,将来自己写的java项目也是通过这种方式来构建和打包&#xff1…...

C++基础(16 智能指针)

目录 1. 智能指针的使用场景分析 2. RAII和智能指针的设计思路 3. C标准库智能指针的使用 4. 智能指针的原理 5. shared_ptr和weak_ptr 5.1 shared_ptr循环引用问题 5.2 weak_ptr 如何检测内存泄漏(了解) 1. 智能指针的使用场景分析 下⾯程序中我…...

蓝耘智算携手通义万相2.1:助力 AIGC 生成效率与性能的革新实践

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…...

嵌入式学习-EXTI外部中断

STM32 是一种基于 ARM Cortex-M 内核的微控制器系列,广泛应用于嵌入式系统开发。中断(Interrupt)是 STM32 中一个非常重要的功能,它允许微控制器在执行主程序的同时,响应外部事件或内部事件的请求,从而实现…...

git 中 commit 的修改

修改最新的commit 1. 通过文本编辑器修改 # 修改最后一次提交的提交信息 git commit --amend2. 通过命令行修改 git commit --amend -m "新的提交信息"3. 仅添加遗漏的文件 # 添加遗漏的文件到暂存区 git add 遗漏的文件路径 # 修改最后一次提交,将暂…...

视觉Transformer(ViT)解析:它们比CNN更好吗?

深入理解计算机视觉任务中突破性架构的工作原理 1. 引言 自从自注意力机制(Self-Attention Mechanism)被引入以来,Transformer模型一直是自然语言处理(NLP)任务的首选。基于自注意力的模型具有高度并行化的特性&…...

rustup-init.exe 安装缓慢的解决办法

首先在rust官网下载安装程序,官网下载的 rustup-init.exe 下载慢,安装慢,或者直接卡死。 下载安装程序在本地,使用国内镜像加速 Rust 更新与下载。 使用国内镜像源:在 rustup-init.exe 程序文件夹下使用 PowerShell 中…...

动规【力扣】72. 编辑距离

数组含义: dp[i][j]含义是word1的i长度字符串和word2的j长度字符串所需的最少编辑距离。 递推公式: 1.当word1.charAt(i-1)word2.charAt(j-1)时,不用做任何操作,所以dp[i][j] dp[i-1][j-1]; 2.当word1.charAt(i-1)&a…...

获取哔站评论

一、文章立论 哔哩哔哩(B站)是当前年轻人十分喜爱的视频分享平台,以其丰富多样的内容、互动性强的社区氛围以及独特的弹幕文化深受用户喜爱。在该平台上,用户不仅可以观看各种类型的视频,如动画、游戏、科技、生活、影…...

LeetCode 链表章节

简单 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2…...

JavaScript实现倒计时函数

函数代码 /*** 倒计时* param {function} callback 回调函数,参数为当前剩余时间(time)* param {number} count 倒计时开始时间(s)* param {number} interval 间隔时间(ms)*/ function countDown(callback, count 60, interval 1000) {callback(count);const sta…...

Spring Boot全局异常处理:“危机公关”团队

目录 一、全局异常处理的作用二、Spring Boot 实现全局异常处理(附上代码实例)三、总结: 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢&#x1…...

Vue 调用摄像头扫描条码

以下是一个基于 Vue.js 的页面代码示例,用于调用摄像头并扫描条码。我们将使用 jsQR 库来解析二维码(或条形码),这是一个轻量级的 JavaScript 库。 实现步骤: 安装依赖:需要引入 jsQR 库。调用摄像头&…...

springboot3.x下集成hsqldb数据库

springboot3.x下集成hsqldb数据库 本文使用目前最新的sringboot3.4.3 和HyperSQL 2.7.4演示 HSQLDB数据库简介 HSQLDB(HyperSQL DataBase)是一个开放源代码的JAVA数据库。 可以透过 jdbc driver 来存取, 支持 ANSI-92 标准的 SQL 语法, 而且他占的空…...

网络流算法: Edmonds-Karp算法

图论相关帖子 基本概念图的表示: 邻接矩阵和邻接表图的遍历: 深度优先与广度优先拓扑排序图的最短路径:Dijkstra算法和Bellman-Ford算法最小生成树二分图多源最短路径强连通分量欧拉回路和汉密尔顿回路网络流算法: Edmonds-Karp算法网络流算法: Dinic算法 环境要求 本文所用…...

ArcGIS Pro可见性分析:精通地形视线与视域分析

在地理信息系统(GIS)的广泛应用中,可见性分析作为一项关键技术,发挥着不可替代的作用。 无论是城市规划、环境监测,还是军事侦察、景观设计,可见性分析都能提供精确的数据支持,帮助我们更好地理…...

jenkens使用笔记

jenkens使用笔记 笔记使用版本是2.492.1 git仓库ssh证书配置 已开始配置一直不行,然后下载插件,多次重启等一些列操作, 后来配置就可以工作了,原因不祥,不知道哪个配置起效了。 等回来闹明白了,再补充笔记…...

解决跨域请求的问题(CORS)

目录 解决跨域请求问题的方法 1. 服务器端配置响应头 2. JSONP(JSON with Padding) 3. 代理服务器 场景示例 前端代码(使用 Fetch API) 后端代码(使用 Node.js Express 并设置 CORS 响应头) 跨域资…...

未来经济范式争夺战:AR眼镜为何成为下一代交互终端的制高点?

未来经济范式争夺战:AR眼镜为何成为下一代交互终端的制高点? 在蒸汽机轰鸣的工业革命时代,煤炭、铁路、电报构建了第一个现代经济范式;互联网时代,电力、光纤、物流网络重构了全球经济版图。当前,我们正站…...

CentOS 7 安装Nginx-1.26.3

无论安装啥工具、首先认准了就是官网。Nginx Nginx官网下载安装包 Windows下载: http://nginx.org/download/nginx-1.26.3.zipLinxu下载 wget http://nginx.org/download/nginx-1.26.3.tar.gzLinux安装Nginx-1.26.3 安装之前先安装Nginx依赖包、自行选择 yum -y i…...

基于opencv消除图片马赛克

以下是一个基于Python的图片马赛克消除函数实现,结合了图像处理和深度学习方法。由于马赛克消除涉及复杂的图像重建任务,建议根据实际需求选择合适的方法: import cv2 import numpy as np from PIL import Imagedef remove_mosaic(image_pat…...

MongoDB Compass中MONGOSH常用查询整理

MongoDB Compass中MONGOSH常用查询整理 选择数据库基本的查找指令find() 方法findOne() 方法 高级查询条件比较操作符逻辑操作符投影操作排序操作限制和跳过操作limit() 方法skip() 方法 正则表达式查询数组查询 MongoDB Compass 是一款可视化的 MongoDB 数据库管理工具&#x…...

SSM笔记

一、获取对象 Scop 单例在容器启动时就直接创建,如果不希望这样,那就使用Lazy懒加载,只能在单例模式下 3、4不常用 FactoryBean创建 对象 创建对象比较复杂时,可以实现创建一个类实现FactoryBean,实现3个方法来创建…...

5G学习笔记之BWP

我们只会经历一种人生,我们选择的人生。 参考:《5G NR标准》、《5G无线系统指南:如微见著,赋能数字化时代》 目录 1. 概述2. BWP频域位置3. 初始与专用BWP4. 默认BWP5. 切换BWP 1. 概述 在LTE的设计中,默认所有终端均能处理最大2…...

MongoDB Chunks核心概念与机制

1. 基础定义‌ ‌Chunk(块)‌:MongoDB分片集群中数据的逻辑存储单元,由一组连续的片键(Shard Key)范围数据组成,默认大小为‌64MB‌(可调整范围为1-1024MB)‌。‌数据分…...

el-table 手动选择展示列

需求: 由于表格的列过多,用滚动条进行滚动对比数据不方便,所以提出,手动选择展示列 实现思路: 表格默认展示所有字段,每个字段通过 v-if 属性来进行判断是否显示;点击设置按钮图标(表格右上角&#xff0…...

Netty笔记3:NIO编程

Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8&#xf…...

LeetCode Hot 100

1.两数之和 暴力解法:时间/空间复杂度 O(N)&#xff0c;O(1) class Solution {public int[] twoSum(int[] nums, int target) {for(int i0;i<nums.length;i){for(int ji1;j<nums.length;j){if(nums[i] nums[j] target){return new int[]{i,j};}}}return new int[0];}…...

Vue.js 学习笔记

文章目录 前言一、Vue.js 基础概念1.1 Vue.js 简介1.2 Vue.js 的特点1.3 Vue.js 基础示例 二、Vue.js 常用指令2.1 双向数据绑定&#xff08;v-model&#xff09;2.2 条件渲染&#xff08;v-if 和 v-show&#xff09;2.3 列表渲染&#xff08;v-for&#xff09;2.4 事件处理&am…...

MySQL表连接详解

MySQL表连接详解 在 MySQL 中&#xff0c;表连接&#xff08;Join&#xff09;用于将多个表中的数据组合在一起&#xff0c;基于它们之间的关系进行查询。常见的表连接类型包括内连接、左连接、右连接和全外连接。以下是这些连接类型的详细说明&#xff1a; 1. 内连接&#x…...

【JAVA】ThreadPoolTaskExecutor 线程池学习、后端异步、高并发处理

ThreadPoolTaskExecutor 是 Spring 框架提供的一个线程池实现类&#xff0c;基于 Java 原生的 ThreadPoolExecutor 进行了封装和扩展&#xff0c;支持更灵活的配置&#xff0c;并与 Spring 的依赖注入、生命周期管理等功能无缝集成。它常用于异步任务处理、定时任务调度和高并发…...

PPT 小黑第38套

对应大猫40 幻灯片母板-最后一页-重命名为奇数页 奇偶页-点中标题-形状格式-形状填充-青色 最后一页页码左对齐 更换幻灯片背景&#xff1a;设计-设置背景格式-图片填充 【开始】-段落居中&#xff0c;对齐文本-中部对齐&#xff0c;排列-对齐-底端&#xff0c;-再水平居中…...

安卓开发相机功能

相机功能 安卓中的相机调用功能也经历了很多的方案升级&#xff0c;目前可选的官方方案是CameraX、Camera2、Camera&#xff08;废弃&#xff09;&#xff0c;还有一些第三方免费或者是付费的相机库。对于大多数开发者&#xff0c;建议使用 CameraX。 CameraX CameraX 是 An…...

宝塔找不到php扩展swoole,服务器编译安装

1. 在php7.4中安装swoole&#xff0c;但找不到这个扩展安装 2. 服务器下载源码解压安装 http://pecl.php.net/package/swoole 下载4.8.0版本 解压到/www/server/php/74/下 3. 发现报错问题&#xff1b; 更新一下依赖 yum update yum -y install gcc gcc-c autoconf libjpe…...

Spring Web MVC

前言 今天来复习 Spring Web MVC 框架。它提供了一套高效、便捷的方式来构建 Web 应用程序。今天&#xff0c;就让我们一同深入 Spring Web MVC&#xff0c;从基础概念到实际应用&#xff0c;好好补补. 一、Spring Web MVC 是什么&#xff1f; 官方定义解读 根据官方描述&…...

蓝桥杯备考:动态规划线性dp之下楼梯问题进阶版

老规矩&#xff0c;按照dp题的顺序 step1 定义状态表达 f[i]表示到第i个台阶的方案数 step2:推导状态方程 step3:初始化 初始化要保证 1.数组不越界 2.推导结果正确 如图这种情况就越界了&#xff0c;我们如果把1到k的值全初始化也不现实&#xff0c;会增加程序的时间复杂度…...

机器视觉开发教程——封装Halcon通用模板匹配工具【含免费教程源码】

目录 引言前期准备Step1 设计可序列化的输入输出集合【不支持多线程】Step2 设计程序框架1、抽象层【IProcess】2、父类【HAlgorithm】3、子类【HFindModelTool】 Step3 设计UI结果展示 引言 通过仿照VisionPro软件二次开发Halcon的模板匹配工具&#xff0c;便于在客户端软件中…...

UDP透传程序

UDP透传程序 本脚本用于在 设备 A 和 设备 B 之间建立 UDP 数据转发桥梁&#xff0c;适用于 A 和 B 设备无法直接通信的情况。 流程&#xff1a; A --> 电脑 (中继) --> B B --> 电脑 (中继) --> A 需要修改参数&#xff1a; B_IP “192.168.1.123” # 设备 B 的…...

【USRP】NVIDIA Sionna:用于 6G 物理层研究的开源库

目录 Sionna&#xff1a;用于 6G 物理层研究的开源库主要特点实现6G研究的民主化支持 5G、6G 等模块化、可扩展、可伸缩快速启动您的研究 好处原生人工智能支持综合研究平台开放生态系统 安装笔记使用 pip 安装基于Docker的安装从源代码安装“你好世界&#xff01;”探索锡奥纳…...

Spring WebFlux 中 WebSocket 使用 DataBuffer 的注意事项

以下是修改后的完整文档&#xff0c;包含在多个多线程环境中使用 retain() 和 release() 方法的示例&#xff0c;且确保在 finally 块中调用 release()&#xff1a; 在 Spring WebFlux 中&#xff0c;WebSocketMessage 主要用于表示 WebSocket 的消息载体&#xff0c;其中 getP…...

SQL经典常用查询语句

1. 基础查询语句 1.1 查询表中所有数据 在SQL中&#xff0c;查询表中所有数据是最基本的操作之一。通过使用SELECT * FROM table_name;语句&#xff0c;可以获取指定表中的所有记录和列。例如&#xff0c;假设有一个名为employees的表&#xff0c;包含员工的基本信息&#xf…...

0005__PyTorch 教程

PyTorch 教程 | 菜鸟教程 离线包&#xff1a;torch-1.13.1cpu-cp39-cp39-win_amd64.whl https://download.pytorch.org/whl/torch_stable.html...

高并发场景下的数据库优化

在高并发系统中&#xff0c;数据库通常是性能瓶颈。面对高并发请求&#xff0c;我们需要采用合适的优化策略&#xff0c;以保证数据库的稳定性和高效性。本文将介绍数据库高并发问题的成因&#xff0c;并结合 Mybatis-Plus&#xff0c;探讨 乐观锁、悲观锁、高并发优化及数据库…...

Linux:同步

目录 一、同步概念 条件变量 二、生产者消费者模型 三、环形队列 一、同步概念 互斥用来解决 访问临界资源 的非原子性&#xff0c;通俗来说&#xff0c;由于互斥锁的实现&#xff0c;保证了在用户角度看&#xff0c;同一个时间内访问临界资源的代码只有一个线程在执行。 而…...

GB28181开发--ZLMediaKit‌+WVP+Jessibuca‌

一、核心组件功能 1‌、ZLMediaKit‌ 定位‌:基于 C++11 的高性能流媒体服务框架,支持 RTSP/RTMP/HLS/HTTP-FLV 等协议互转,具备低延迟(最低 100ms)、高并发(单机 10W 级连接)特性,适用于商用级流媒体服务器部署‌。 ‌特性‌:跨平台(Linux/Windows/ARM 等)、支持 …...

23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类&#xff0c;共23种&#xff1a; 1. 创建型模式&#xff08;Creational Patterns&#xff09; 单例模式&#xff08;Singleton&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并提供全局访问点。 工厂方法模式&#xff0…...

Oracle删除重复数据保留其中一条

Oracle删除重复数据保留其中一条 在Oracle数据库中&#xff0c;要删除重复数据并保留其中一条记录&#xff0c;可以使用多种方法。这里介绍两种常见的方法&#xff1a;使用ROWID或使用ROW_NUMBER()窗口函数。 方法1&#xff1a;使用ROWID ROWID是Oracle中用来唯一标识表中每…...

deepseek助力运维和监控自动化

将DeepSeek与Agent、工作流及Agent编排技术结合&#xff0c;可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例&#xff1a; 一、智能Agent体系设计 多模态感知Agent 日志解析Agent&#xff1a;基于DeepSeek的NLP能力&#xff0c;实时解析系统日志中的语义&a…...

16.1STM32_ADC

STM32_ADC 数字信号分为高/低电平两种状态 模拟信号就是任意的电压值 STM32芯片内就是一整套的数字逻辑电路&#xff0c;来实现我们的程序执行&#xff0c;以及各种各样的外设功能&#xff0c; ADC&#xff08;模拟-数字转换技术&#xff09;的功能就是将模拟信号转化为数字…...

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…...