【Docker】02 镜像管理

news2024/11/18 18:14:38

文章目录

  • 一、Images镜像
  • 二、管理操作
    • 2.1 搜索镜像
      • 2.1.1 命令行搜索
      • 2.1.2 页面搜索
      • 2.1.3 搜索条件
    • 2.2 下载镜像
    • 2.3 查看本地镜像
      • 2.3.1 docker images
      • 2.3.2 --help
      • 2.3.3 repository name
      • 2.3.4 --filter
      • 2.3.5 -q
      • 2.3.6 --format
    • 2.4 给镜像打标签
    • 2.5 推送镜像
    • 2.6 删除镜像
    • 2.7 导出导入镜像
  • 三、镜像文件信息
    • 3.1 镜像存储位置
    • 3.2 查看镜像层文件


一、Images镜像

镜像,可理解为一个模板,Docker可根据这些Images来执行生成容器来运行,也可将容器打包成镜像。

二、管理操作

2.1 搜索镜像

2.1.1 命令行搜索

通过docker search命令来搜索相关镜像。

[root@server ~]# docker search alpine
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
alpine                             A minimal Docker image based on Alpine Linux…   10611     [OK]       
alpinelinux/docker-cli             Simple and lightweight Alpine Linux image wi…   10                   
alpinelinux/alpine-gitlab-ci       Build Alpine Linux packages with Gitlab CI      3                    
alpinelinux/gitlab-runner-helper   Helper image container gitlab-runner-helper …   6                    
alpinelinux/rsyncd                                                                 2         

2.1.2 页面搜索

在这里插入图片描述

2.1.3 搜索条件

[root@server ~]# docker search --help

Usage:  docker search [OPTIONS] TERM

Search Docker Hub for images

Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results
      --no-trunc        Don't truncate output

增加搜索条件,过滤STARS大于等于3000的镜像:

[root@server ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   14779     [OK]       
mariadb   MariaDB Server is a high performing open sou…   5638      [OK]  

2.2 下载镜像

直接拉取(下载)相关镜像的话,默认是最新版本:

[root@server ~]# docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
661ff4d9561e: Already exists 
Digest: sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

下载指定Tag版本:

[root@server ~]# docker pull alpine:3.10.3
3.10.3: Pulling from library/alpine
89d9c30c1d48: Pull complete 
Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a
Status: Downloaded newer image for alpine:3.10.3
docker.io/library/alpine:3.10.3

2.3 查看本地镜像

官方文档:docker images

2.3.1 docker images

通过docker images命令查看本地镜像:

[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         alpine    20658529aaf6   8 days ago     46.1MB
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
alpine        3.10.3    965ea09ff2eb   4 years ago    5.55MB

2.3.2 --help

[root@server ~]# docker images --help

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Aliases:
  docker image ls, docker image list, docker images

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Format output using a custom template:
                        'table':            Print output in table format with column headers
                        (default)
                        'table TEMPLATE':   Print output in table format using the given Go
                        template
                        'json':             Print in JSON format
                        'TEMPLATE':         Print output using the given Go template.
                        Refer to https://docs.docker.com/go/formatting/ for more information
                        about formatting output with templates
      --no-trunc        Don't truncate output    不对镜像ID做截取
  -q, --quiet           Only show image IDs

2.3.3 repository name

# 显示指定仓库Repository的镜像,可带Tag标签
[root@server ~]# docker images alpine
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    f8c20f8bbcb6   5 weeks ago   7.38MB
alpine       3.10.3    965ea09ff2eb   4 years ago   5.55MB

[root@server ~]# docker images alpine:latest
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    f8c20f8bbcb6   5 weeks ago   7.38MB

2.3.4 --filter

# 显示未打Tag的镜像,此处是无
[root@server ~]# docker images --filter "dangling=true"
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@server ~]# docker images --filter "dangling=false"
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
pro_omc_ops   1.0       c5f5e39dedbd   2 days ago     309MB
redis         alpine    20658529aaf6   8 days ago     46.1MB
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
alpine        3.10.3    965ea09ff2eb   4 years ago    5.55MB

# 删除无Tag标签的镜像
[root@server ~]# docker rmi $(docker images --filter "dangling=true" -q) 

# 显示在某个镜像创建之前的所有镜像
[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
[root@server ~]# docker images --filter "before=alpine"
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
[root@server ~]# docker images --filter "before=f8c20f8bbcb6"
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

# 显示指定镜像创建时间之后的所有镜像
[root@server ~]# docker images --filter "since=hello-world"
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    f8c20f8bbcb6   5 weeks ago   7.38MB

# 镜像REPOSITORY的模糊查找,支持多个reference
[root@server ~]# docker images --filter reference='al*' 
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    f8c20f8bbcb6   5 weeks ago   7.38MB
[root@server ~]# docker images --filter reference='hello*'
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
[root@server ~]# docker images --filter reference='hello*' --filter reference='al*'
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

2.3.5 -q

# 只显示镜像的ID
[root@server ~]# docker images -q 
c5f5e39dedbd
20658529aaf6
f8c20f8bbcb6
d2c94e258dcb
965ea09ff2eb

2.3.6 --format

--format格式化的相关参数:
在这里插入图片描述

[root@server ~]# docker images --format "{{.ID}}: {{.Repository}}"
f8c20f8bbcb6: alpine
d2c94e258dcb: hello-world

[root@server ~]# docker images --format "table {{.ID}}:\t{{.Repository}}\t{{.Tag}}"
IMAGE ID:       REPOSITORY    TAG
f8c20f8bbcb6:   alpine        latest
d2c94e258dcb:   hello-world   latest

# 以JSON格式列出所有镜像
[root@server ~]# docker images --format json
{"Containers":"N/A","CreatedAt":"2023-12-08 09:20:49 +0800 CST","CreatedSince":"5 weeks ago","Digest":"\u003cnone\u003e","ID":"f8c20f8bbcb6","Repository":"alpine","SharedSize":"N/A","Size":"7.38MB","Tag":"latest","UniqueSize":"N/A","VirtualSize":"7.377MB"}
{"Containers":"N/A","CreatedAt":"2023-05-03 00:49:27 +0800 CST","CreatedSince":"8 months ago","Digest":"\u003cnone\u003e","ID":"d2c94e258dcb","Repository":"hello-world","SharedSize":"N/A","Size":"13.3kB","Tag":"latest","UniqueSize":"N/A","VirtualSize":"13.26kB"}

2.4 给镜像打标签

[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
[root@server ~]# docker tag f8c20f8bbcb6 docker.io/alpine:2.2.2
[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        2.2.2     f8c20f8bbcb6   5 weeks ago    7.38MB
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

2.5 推送镜像

[root@server ~]# docker push docker.io/asdfv1929/alpine:v7.31
The push refers to repository [docker.io/asdfv1929/alpine]
72e830a4dff5: Mounted from library/alpine
v7.31: digest: sha256:1775bebec23e1f3ce486989bfc9ff3c4e951690df84aa9f926497d82f2ffca9d size: 528

2.6 删除镜像

[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        2.2.2     f8c20f8bbcb6   5 weeks ago    7.38MB
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

[root@server ~]# docker rmi alpine:2.2.2 
Untagged: alpine:2.2.2
[root@server ~]# docker images          
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    f8c20f8bbcb6   5 weeks ago    7.38MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
[root@server ~]# docker rmi alpine:latest
Untagged: alpine:latest
Untagged: alpine@sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48
Deleted: sha256:f8c20f8bbcb684055b4fea470fdd169c86e87786940b3262335b12ec3adef418
[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

# -f 强制删除
[root@server ~]# docker rmi -f d2c94e258dcb
Untagged: hello-world:latest
Untagged: hello-world@sha256:ac69084025c660510933cca701f615283cdbb3aa0963188770b54c31c8962493
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a

# 删除所有镜像
[root@server ~]# docker rmi -f $(docker images -aq)
Untagged: hello-world:latest
Untagged: hello-world@sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a
[root@server ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@server ~]# 

2.7 导出导入镜像

[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

# 导出镜像
[root@server ~]# docker save d2c94e258dcb > hello-latest.tar

[root@server ~]# ll hello-latest.tar 
-rw-r--r--. 1 root root 22016 Jan 18 20:05 hello-latest.tar

# 导入镜像
[root@server ~]# docker load -i hello-latest.tar 
Loaded image ID: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a

三、镜像文件信息

3.1 镜像存储位置

[root@server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB

# 文件的前12位即为镜像的ID
[root@server ~]# ll /var/lib/docker/image/overlay2/imagedb/content/sha256/
total 4
-rw-------. 1 root root 581 Jan 18 19:59 d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a

# 查看镜像文件内容
[root@server ~]# cat /var/lib/docker/image/overlay2/imagedb/content/sha256/d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a   
{"architecture":"amd64","config":{"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["/hello"],"WorkingDir":"/","ArgsEscaped":true,"OnBuild":null},"created":"2023-05-02T16:49:27Z","history":[{"created":"2023-05-02T16:49:27Z","created_by":"COPY hello / # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2023-05-02T16:49:27Z","created_by":"CMD [\"/hello\"]","comment":"buildkit.dockerfile.v0","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e"]}}

3.2 查看镜像层文件

[root@server ~]# ll /var/lib/docker/image/overlay2/layerdb/sha256/
total 0
drwx------. 2 root root 85 Jan 10 14:42 03b689971beda84d64b529b31795b90dd04b8101a6cb6eb130401c3b3f789d0a
drwx------. 2 root root 85 Jan 16 09:32 1db87e37572d9033619f854bd3a90343a745eacad89661951c45378532b3a70f
drwx------. 2 root root 85 Jan 10 15:42 2199eb66405a876e223944aa9bf864899a1d7642725867cbad2f987c30a7bd4c
drwx------. 2 root root 85 Jan 10 16:00 31fd5efb2e46f5ec563eeecea425110667b89cab1c91358ec2c2abad895d574f
drwx------. 2 root root 85 Jan 10 14:43 50f5a10ada14518bde74ac2e3d496817ae963780c3465a68d42c6f2253594f29
drwx------. 2 root root 85 Jan 10 14:42 595431852bbc71ca9610933a01959afa4f2c41509ace1bbb54b6ae9af20a4e20
drwx------. 2 root root 71 Jan 10 14:42 5af4f8f59b764c64c6def53f52ada809fe38d528441d08d01c206dfb3fc3b691
drwx------. 2 root root 85 Jan 16 10:53 6048310efaa222cf9cf8d2bc8f3c39835d172a62320426257b08348f98f8f471
drwx------. 2 root root 85 Jan 10 16:20 63342cdfc4c83913172e3ed5644b5b3168d0b8bcbbbc2b29e9cf8ad67d7f4f47
drwx------. 2 root root 85 Jan 10 16:41 6e1739548915b0823ef27e8c5b4b5a38ff8dfe4cad8cbb872f5ab5755aab47f6
drwx------. 2 root root 85 Jan 16 10:43 73e8eba6c99272151a3bc9c95c23ae4e4ee77fdadbd65dbe00976d06c01d79c8
drwx------. 2 root root 85 Jan 10 14:43 7443e951ac7ff82bc91ebee219fe24df641bad668c4dc1eaf0998a81be2fdac8
drwx------. 2 root root 85 Jan 10 15:54 7aabc2f19676e207c21ff591882b3216697cc27813d45816ca64e04b2837a6aa
drwx------. 2 root root 71 Jan 10 13:27 ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e
drwx------. 2 root root 85 Jan 10 16:16 bb464434e5d56949ee8f1080bdae4d2b3eeb57a1451d7c195eb1f71451926057
drwx------. 2 root root 85 Jan 10 14:42 bd6461f4898114060f6d30c2ae3828829c31804375461d304d0baead03333a63
drwx------. 2 root root 85 Jan 10 14:43 c51f246267806c659dc24c9c353ecd22421d44d659ffddb3ab64a4c403eb9204
drwx------. 2 root root 85 Jan 10 14:43 d1fce9f49c0ac97ea93606fa282700fca2f0aa0cdbea829d35c4da12406e1c0c
drwx------. 2 root root 85 Jan 10 17:15 ee5e48bebc436ac28496136d00ace179616ee3c35828f524629ed89718abec4b
drwx------. 2 root root 85 Jan 10 14:42 f7ff6a7ad88e8a59f027e202e5ca77fa4162d8b82ef66724daf26cbb9b5acdeb

镜像层文件夹内的结构:
size:占用大小
tar-split.json.gz:镜像层文件包

[root@server ~]# cd /var/lib/docker/image/overlay2/layerdb/sha256/
[root@server sha256]# ll 03b689971beda84d64b529b31795b90dd04b8101a6cb6eb130401c3b3f789d0a/
total 92
-rw-r--r--. 1 root root    64 Jan 10 14:42 cache-id
-rw-r--r--. 1 root root    71 Jan 10 14:42 diff
-rw-r--r--. 1 root root    71 Jan 10 14:42 parent
-rw-r--r--. 1 root root     8 Jan 10 14:42 size
-rw-r--r--. 1 root root 77504 Jan 10 14:42 tar-split.json.gz
[root@server sha256]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1442878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React18原理: 渲染与更新时的重点关注事项

概述 react 在渲染过程中要做很多事情,所以不可能直接通过初始元素直接渲染还需要一个东西,就是虚拟节点,暂不涉及React Fiber的概念,将vDom树和Fiber 树统称为虚拟节点有了初始元素后,React 就会根据初始元素和其他可…

1g的视频怎么压缩到200m?3个步骤解决~

把1G的文件压缩到200M,可以有效节省存储空间,加快传输速度,在某些情况下,压缩文件可以提供更好的安全性,例如通过加密或压缩算法保护文件内容。下面就向大家介绍3个好用的方法。 方法一:使用嗨格式压缩大师…

立体感十足的地图组件,如何设计出来的?

以下是一些设计可视化界面中的地图组件更具备立体感的建议: 使用渐变色: 可以使用不同的渐变色来表现地图的高低差异,例如使用深蓝色或深紫色来表示海底,使用浅绿色或黄色来表示低地,使用橙色或红色来表示高地。 添加…

springboot173疫苗发布和接种预约系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

数据分析基础之《pandas(7)—高级处理2》

四、合并 如果数据由多张表组成,那么有时候需要将不同的内容合并在一起分析 1、先回忆下numpy中如何合并 水平拼接 np.hstack() 竖直拼接 np.vstack() 两个都能实现 np.concatenate((a, b), axis) 2、pd.concat([data1, data2], axis1) 按照行或者列…

[超分辨率重建]ESRGAN算法训练自己的数据集过程

一、下载数据集及项目包 1. 数据集 1.1 文件夹框架的介绍,如下图所示:主要有train和val,分别有高清(HR)和低清(LR)的图像。 1.2 原图先通过分割尺寸的脚本先将数据集图片处理成两个相同的图像…

政安晨:示例演绎机器学习中(深度学习)神经网络的数学基础——快速理解核心概念(一){两篇文章讲清楚}

进入人工智能领域免不了与算法打交道,算法依托数学基础,很多小伙伴可能新生畏惧,不用怕,算法没那么难,也没那么玄乎,未来人工智能时代说不得人人都要了解算法、应用算法。 本文试图以一篇文章,…

分享76个表单按钮JS特效,总有一款适合您

分享76个表单按钮JS特效,总有一款适合您 76个表单按钮JS特效下载链接:https://pan.baidu.com/s/1CW9aoh23UIwj9zdJGNVb5w?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集…

(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率

题目 思路: 1、区间端点可能是小数的时候,不能直接利用加减1将 < 转化为 <=,例如,x < 1.5 不等价于 x <= 2.5 2、该题中k在(b - sqrt(4 * a * c), b + sqrt(4 * a * c) 中,注意是开区间,那么可以将左端点向上取整,右端点向下取整,即sqrt(4 * a * c)向下取…

Netty中的常用组件(三)

ChannelPipeline 基于Netty的网路应用程序中根据业务需求会使用Netty已经提供的Channelhandler 或者自行开发ChannelHandler&#xff0c;这些ChannelHandler都放在ChannelPipeline中统一 管理&#xff0c;事件就会在ChannelPipeline中流动&#xff0c;并被其中一个或者多个Chan…

Mysql-Explain-使用说明

Explain 说明 explain SELECT * FROM tb_category_report;id&#xff1a;SELECT识别符&#xff0c;这是SELECT查询序列号。select_type&#xff1a;表示单位查询的查询类型&#xff0c;比如&#xff1a;普通查询、联合查询(union、union all)、子查询等复杂查询。table&#x…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Java多线程案例】实现阻塞队列

1. 阻塞队列简介 1.1 阻塞队列概念 阻塞队列&#xff1a;是一种特殊的队列&#xff0c;具有队列"先进先出"的特性&#xff0c;同时相较于普通队列&#xff0c;阻塞队列是线程安全的&#xff0c;并且带有阻塞功能&#xff0c;表现形式如下&#xff1a; 当队列满时&…

CSP-202012-2-期末预测之最佳阈值

CSP-202012-2-期末预测之最佳阈值 【70分思路】 本题的难点还是时间复杂度&#xff0c;暴力枚举会导致时间超限。对于每一个可能的阈值theta&#xff0c;代码都重新计算了整个predict数组&#xff0c;统计预测正确的数目&#xff0c;因为有两个嵌套的循环&#xff0c;使得时间…

各版本安卓的彩蛋一览

目录 前言前彩蛋纪Android 2.3 GingerbreadAndroid 3 HoneycombAndroid 4.0 Ice Cream SandwichAndroid 4.1-4.3 JellybeanAndroid 4.4 KitKatAndroid 5 LollipopAndroid 6 MarshmallowAndroid 7 NougatAndroid 8 OreoAndroid 9 PieAndroid 10 Queen CakeAndroid 11 Red Velvet…

分享66个相册特效,总有一款适合您

分享66个相册特效&#xff0c;总有一款适合您 66个相册特效下载链接&#xff1a;https://pan.baidu.com/s/1jqctaho4sL_iGSNExhWB6A?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

【Java EE初阶十】多线程进阶二(CAS等)

1. 关于CAS CAS: 全称Compare and swap&#xff0c;字面意思:”比较并交换“&#xff0c;且比较交换的是寄存器和内存&#xff1b; 一个 CAS 涉及到以下操作&#xff1a; 下面通过语法来进一步进项说明&#xff1a; 下面有一个内存M&#xff0c;和两个寄存器A,B; CAS(M,A,B)&am…

社区店营销新趋势:如何吸引并留住顾客?

作为一名资深的鲜奶吧创业者&#xff0c;我已经在这个行业摸爬滚打了五年。 这五年的时间&#xff0c;我见证了社区店营销的变迁&#xff0c;也积累了一些关于如何吸引并留住顾客的经验。今天&#xff0c;我想和大家分享一些留住顾客的核心干货。&#xff08;可以点赞收藏&…

YOLOv8改进 | 检测头篇 | 独创RFAHead检测头超分辨率重构检测头(适用Pose、分割、目标检测)

一、本文介绍 本文给大家带来的改进机制是RFAHead,该检测头为我独家全网首发,本文主要利用将空间注意力机制与卷积操作相结合的卷积RFAConv来优化检测头,其核心在于优化卷积核的工作方式,特别是在处理感受野内的空间特征时。RFAConv主要的优点就是增加模型的特征提取能力,…

MATLAB实现LSTM时间序列预测

LSTM模型可以在一定程度上学习和预测非平稳的时间序列&#xff0c;其具有强大的记忆和非线性建模能力&#xff0c;可以捕捉到时间序列中的复杂模式和趋势[4]。在这种情况下&#xff0c;LSTM模型可能会自动学习到时间序列的非平稳性&#xff0c;并在预测中进行适当的调整。其作为…