阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)推送镜像全过程及总结

前提:安装配置好docker,可参考我这篇 基于CentOS7安装配置docker与docker-compose。

一、设置访问凭证

1.1 容器镜像服务ACR

登录进入阿里云首页,点击 产品-容器-容器镜像服务ACR
在这里插入图片描述
点击管理控制台
在这里插入图片描述

1.2 进入控制台-点击实例列表

在这里插入图片描述
个人容器镜像托管服务,限额使用
在这里插入图片描述

1.3 创建个人版

在这里插入图片描述
个人容器镜像托管服务,限额使用
在这里插入图片描述
知晓个人版无SLA保障且有使用限制,请勿在生产业务中使用
在这里插入图片描述
创建中
在这里插入图片描述
创建成功
在这里插入图片描述

1.4 设置Registry登录密码

在这里插入图片描述
点击确定
在这里插入图片描述
点击确定
在这里插入图片描述
初始化成功
在这里插入图片描述

1.5 查看访问凭证

在上图中点击 “访问凭证”,按下图复制访问凭证

在这里插入图片描述

1.6 复制粘贴凭证 Login Succeeded

在这里插入图片描述
Login Succeeded
在这里插入图片描述

1.7 设置固定密码

在这里插入图片描述
设置固定密码,手机验证
在这里插入图片描述
全过程
在这里插入图片描述

1.8 个人版运行中

在这里插入图片描述

1.9 第一步 访问凭证-设置访问密码完成(右下角有显示)

在这里插入图片描述

1.10 容器镜像服务个人版将于2023年8月20日起取消个人版实例的镜像安全扫描-镜像同步功能

在这里插入图片描述

二、创建命名空间

2.1 创建命名空间相关说明

创建命名空间相关说明:
1、一个账号最多可以创建 3 个命名空间

2、命名空间创建参考:
推荐创建的命名空间用来对应一个公司、组织或个人用户,例如AliyunObama。不推荐用来对应一个模块
或系统,例如TomcatCentOS,应用或模块推荐使用仓库进行管理。

3、定义您的镜像仓库命名空间,设置后不可修改。长度为2-30位,可填写小写英文字母、数字,可使用的分隔
符包括“_”、“-”(分隔符不能在首位或末位)

2.2 点击右下角命名空间 第二步

在这里插入图片描述
在这里插入图片描述

2.3 创建命名空间-2023815_djc-命名空间创建参考

在这里插入图片描述
在这里插入图片描述
创建命名空间-2023815_djc成功
在这里插入图片描述

2.4 第二步-命名空间-创建命名空间完成

在这里插入图片描述

三、创建镜像仓库rep2023815

注意: 这里的镜像仓库名rep2023815有误,容易无法区分镜像,但过程和步骤没问题,建议直接从 四、创建镜像仓库mysql全过程五、将mysql镜像推送到Registry-镜像仓库mysql 开始阅读,再看 七、总结 ,减少无用功。

3.1 点击右下角镜像仓库 第三步

在这里插入图片描述

3.2 点击创建镜像仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 代码源选择本地仓库

代码源 选择本地仓库 ,。可以通过命令行推送镜像到镜像仓库
在这里插入图片描述

3.4 其他代码源介绍

3.4.1 代码源-Codeup介绍

在这里插入图片描述

3.4.2 代码源-GitHub

在这里插入图片描述

3.4.3代码源-Bitbucket

在这里插入图片描述

3.4.4代码源-私有GitLab

在这里插入图片描述

3.4.5 代码源-本地仓库

在这里插入图片描述

3.5 代码源选择本地仓库 -镜像仓库rep2023815创建成功

在这里插入图片描述

3.5.1 仓库rep2023815-基本信息-操作指南

在这里插入图片描述

3.5.2 镜像仓库rep2023815-基本信息-制品描述

在这里插入图片描述

3.6 镜像仓库rep2023815-触发器

在这里插入图片描述

3.7 仓库rep2023815-镜像版本

在这里插入图片描述

3.8 将jdk11镜像推送到Registry-镜像仓库rep2023815

docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
//输入之前设置的密码  
docker tag 526230ab6ddf registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11

docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9 将nginx镜像推送到Registry–镜像仓库rep2023815

docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com 
输入之前设置的密码  

docker tag 0e901e68141f registry.cnhangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.6   

docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.6

3.10 将mysql8.0.31镜像推送到Registry-镜像仓库rep2023815

//1-登录  在终端中输入访问凭证,登录Registry实例 
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  

//2-tag
//docker images
//mysql        8.0.31          484689f290f   8 months ago    538MB
//docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:[镜像版本号]
docker tag  7484689f290f  registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31       


3-push
//docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31    


请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

3.12 镜像仓库一览

在这里插入图片描述

在这里插入图片描述
注意: 这里的镜像仓库名rep2023815有误,容易无法区分镜像,但过程和步骤没问题,建议直接从 四、创建镜像仓库mysql全过程五、将mysql镜像推送到Registry-镜像仓库mysql 开始阅读,再看 七、总结 ,减少无用功。

四、创建镜像仓库mysql全过程

4.1 首页

在这里插入图片描述

4.2 点击管理控制台

在这里插入图片描述

4.3 进入实例列表

在这里插入图片描述
在这里插入图片描述

4.4 点击进入镜像仓库

在这里插入图片描述
在这里插入图片描述

4.5 点击创建镜像仓库

在这里插入图片描述

点击“下一步”
在这里插入图片描述
在这里插入图片描述

4.6 镜像仓库mysql-基本信息

提示点击“添加仓库成功”
在这里插入图片描述

4.6.1 镜像仓库mysql-基本信息-操作指南

在这里插入图片描述

操作指南 

1. 登录阿里云Docker Registry
$ docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
//输入之前设置的密码 
您可以在访问凭证页面修改凭证密码。

2.Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]

3. 将镜像推送到Registry
$ docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。

5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。

$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

4.6.2 镜像仓库mysql-基本信息-制品描述

在这里插入图片描述

4.7 镜像仓库可以查看到刚刚创建好的mysql镜像仓库

在这里插入图片描述

五、将mysql镜像推送到Registry-镜像仓库mysql

5.1 将镜像推送到Registry-操作指南

参考 4.6.1 仓库mysql-基本信息-操作指南 中的第3点。

3. 将镜像推送到Registry
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码 

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]

docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

5.2 docker images 查看需要上传push的镜像信息

IMAGE ID 与 镜像版本号(TAG)

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

在这里插入图片描述

5.3 将mysql镜像推送到Registry-镜像仓库mysql

5.3.1 将mysql镜像推送到Registry-镜像仓库mysql-命令

3. 将镜像推送到Registry
//1-login
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  
//2-tag
//这个命令并没有推送镜像,只是给镜像指定一个版本,这个版本不是指本地镜像的版本,而是推送后在阿里云仓库的版本。
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]


-----------

//1-login
//连续上传,只需要登录一次
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  

-------------mysql 8.0.29-----------------------
//2-tag
docker tag 33037edcac9b  registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29  
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29  


-------------mysql 8.0.31-----------------------
//2-tag
docker tag 7484689f290f  registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31  
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31 

【说明】:
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
这个命令并没有推送镜像,只是给镜像指定一个版本,这个版本不是指本地镜像的版本,而是推送后在阿里云仓库的版本。

//tag后面的是你要推送的镜像id
//后面是你的镜像仓库地址,直接去创建好的仓库去复制 

5.3.2 将mysql镜像推送到Registry–镜像仓库mysql-截图

在这里插入图片描述

Digest:该镜像的摘要信息。当您下载镜像时,最后一行中会出现这个值。

镜像ID: 使用1.10以上版本的客户端推送、拉取镜像时,这个值在客户端和服务端能够保持一致。否则这个值
将是随机的不予提供。

5.4 mysql8.0.31推送到Registry-镜像仓库mysql的一些问题

镜像仓库rep2023815也推送了一个mysql8.0.31的镜像,见 3.10 将mysql8.0.31镜像推送到Registry-镜像仓库rep2023815
在这里插入图片描述

5.5 推送mysql镜像到Registry-镜像仓库mysql后再次使用docker images

发现推送到Registry后会在本地也生成一个 相同IMAGE ID的镜像,如下图所示。
在这里插入图片描述

5.6 进入阿里云镜像仓库查看推送到Registry(镜像仓库mysql)的mysql镜像

在这里插入图片描述
点击mysql镜像仓库,点击镜像版本
在这里插入图片描述

六、将之前使用dockerfile手动构建JDK11镜像推送到Registry-镜像仓库jdk

文章见 使用dockerfile手动构建JDK11镜像运行容器并校验

3. 将镜像推送到Registry
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  
//docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:[镜像版本号]
docker tag 526230ab6ddf  registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11

//docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11

请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

6.1 创建镜像仓库jdk

在这里插入图片描述
在这里插入图片描述

6.2 jdk镜像仓库-本地仓库-基本信息-操作指南

在这里插入图片描述
docker images
这里可以看到本地存在两个同IMAGE ID的镜像,TAG都是11,一个是在使用dockerfile手动构建JDK11镜像运行容器并校验 中手动使用 docker build -t java:11 . 命令构建的,另外一个则是在
3.9 将jdk11镜像推送到Registry-镜像仓库rep2023815推送到rep2023815镜像仓库后,后会在本地也生成一个 相同IMAGE ID的镜像。
在这里插入图片描述

6.3 将jdk镜像推送到Registry-镜像仓库jdk截图

在这里插入图片描述
可以发现,这里和正常推送到仓库成功后显示的信息不同,这里显示Mounted from 2023815_djc/rep2023815,

1、此时rep2023815和jdk这两个镜像仓库相同的是中都推送了jdk11这个镜像,并且IMAGE IDTAG都相同。

2、但是rep2023815镜像仓库中的REPOSITORY就是registry.cnhangzhou.aliyuncs.com/2023815_djc/rep2023815,
而且还存放了mysql8.0.31的镜像。

3、jdk镜像仓库的推送的jdk的REPOSITORY是registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk,只存放了jdk这一种镜像。

所以这里显示的 Mounted from 2023815_djc/rep2023815,应该是从和镜像仓库jdk同一命名空间2023815_djc,存放相同IMAGE IDjdk11镜像的镜像仓库rep2023815中(3.9 将jdk11镜像推送到Registry-镜像仓库rep2023815),直接把该jdk11镜像同步到了镜像仓库jdk,所以显示和正常推送的不同。
在这里插入图片描述

6.4 镜像仓库jdk

在这里插入图片描述
刚刚推送到Registry-镜像仓库jdk的jdk11镜像
在这里插入图片描述

6.5 镜像仓库jdk-安全扫描

在这里插入图片描述

6.6 镜像仓库jdk-镜像层信息

会发现这里镜像层信息与我们 使用dockerfile手动构建JDK11镜像运行容器并校验中的dockerfile文件内容大致相同。
在这里插入图片描述

七、总结

docker images 各参数说明:
REPOSITORY:表示镜像的仓库源名
TAG:镜像的标签或版本
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

1、同一镜像仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 jdk仓库源里,有 111213....20 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义并区分不同的镜像,例如jdk:11,jdk:12,jdk:13,jdk:20等。

2、所以一个镜像仓库只存放一种镜像,镜像仓库名要见名知意,如镜像仓库jdk,就知道这个镜像仓库存放的是jdk11版本。
registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11 

如镜像仓库mysql,就知道这个镜像仓库存放的是mysql:8.0.29和mysql:8.0.31 
这两个版本。
registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29
registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31 
如图一、图二所示。



3、所以rep2023815中存放了好几种镜像,mysql,jdk,nginx,是错误的存放方式,容易无法区分镜像,如图一、图二所示。
//jdk  
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11
//mysql
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31  
//nginx
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.6



4、所以镜像仓库名一般写成应用名就可以了,如mysql,oracle,jdk等。

5、发现推送到Registry(某镜像仓库)后会在本地也生成一个相同IMAGE ID的镜像,如图一、图二所示。

7.1 图一如下

在这里插入图片描述

7.2 图二如下

图一

八、容器镜像服务ACR个人版产品功能调整公告 相关(2023年8月20日)

容器镜像服务ACR个人版产品功能调整公告 更新时间:2023-06-26 14:25
尊敬的阿里云容器镜像服务ACR用户:
容器镜像服务ACR计划从2023年8月20日起取消容器镜像服务ACR个人版的镜像安全扫描、镜像同步功能,如果有镜像安全及跨地域镜像高效分发需求,建议提前规划迁移至容器镜像服务ACR企业版实例。具体操作,请参见个人版迁移。

变更内容
自2023年8月20日起,容器镜像服务ACR个人版镜像安全扫描、镜像同步功能将不再支持发起新任务,所有已执行完成的任务将不再支持查询任务状态及详情。请及时关注本次产品变更内容,以免影响您的后续使用,感谢您的配合。

在这里插入图片描述2023-8-18 05:27:45
个人版迁移
访问VPC的服务关联角色
个人版实例镜像导入到企业版实例
使用个人版域名访问企业版实例

【转载aliyun官方-容器镜像服务 ACR】Docker常见问题
使用dockerfile手动构建JDK11镜像运行容器并校验

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚信科技AntDB数据库通过GB 18030-2022最高实现级别认证,荣膺首批通过该认证的产品之列

近日,亚信科技AntDB数据库通过GB 18030-2022《信息技术 中文编码字符集》最高实现级别(级别3)检测认证,成为首批通过该认证的数据库产品之一。 图1:AntDB通过GB 18030-2022最高实现级别认证 GB 18030《信息技术 中文编…

python中的matplotlib画散点图(数据分析与可视化)

python中的matplotlib画散点图(数据分析与可视化) import numpy as np import pandas as pd import matplotlib.pyplot as pltpd.set_option("max_columns",None) plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus]Fa…

JVM——JVM 垃圾回收

文章目录 写在前面本节常见面试题本文导火索 1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定1.5 主要进行 gc 的区域 2 对象已经死亡?2.1 引用计数法2.2 可达性分析算…

QT中资源文件resourcefile的使用,使用API完成页面布局

QT中资源文件resourcefile的使用 之前添加图标的方法使用资源文件的方法创建资源文件资源文件添加前缀资源文件添加资源使用资源文件中的资源 使用API完成布局使用QHBoxLayout完成水平布局使用QVBoxLayout完成垂直布局使用QGridLayout完成网格布局 在Qt中引入资源文件好处在于他…

日志搞不定?手把手教你如何使用Log4j2

系列文章目录 从零开始,手把手教你搭建Spring Boot后台工程并说明 Spring框架与SpringBoot的关联与区别 SpringBean生成流程详解 —— 由浅入深(附超精细流程图) Spring监听器用法与原理详解 Spring事务畅谈 —— 由浅入深彻底弄懂 Transactional注解 面试热点详解…

AS中回退git历史版本并删除历史提交记录

当您想把某个版本后的代码删除,回滚到指定的版本。可以使用一下的方法。 一、打开AS中git历史提交窗口 二、选择需要回滚的版本选项,右键弹出菜单。选择Reset Current Branch to Here... 三、选择 Hard 选项 soft:将合并的更改应用到当前分支…

Linux:编写编译脚本Makefile文件

一、生成可执行文件 1、一个源文件编译 本例子主要区别.c及.cpp文件及编译该文件时使用的编译链。 1).c文件 // testadd.c #include <stdio.h> int main() {int a 1;int b 2;int sum a b;printf("sum %d\n", sum);return 0; }// Makefie GXX g CC gcc…

计算机竞赛 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xf…

13.4 目标检测锚框标注 非极大值抑制

锚框的形状计算公式 假设原图的高为H,宽为W 锚框形状详细公式推导 以每个像素为中心生成不同形状的锚框 # s是缩放比&#xff0c;ratio是宽高比 def multibox_prior(data, sizes, ratios):"""生成以每个像素为中心具有不同形状的锚框"""in_he…

windows安装新openssl后依然显示旧版本

1、Windows环境下升级openssl后&#xff0c;通过指令openssl version -a查看版本号&#xff1a; 这个版本号是以前的老版本&#xff0c;不知道在哪里 2、网上找了老半天也没找到答案&#xff0c;最后通过指令 where openssl 才找到原来的openssl在哪里&#xff0c;把老的卸载掉…

ASEMI快恢复二极管APT80DQ20BG封装尺寸

编辑-Z APT80DQ20BG参数描述&#xff1a; 型号&#xff1a;APT80DQ20BG 最大峰值反向电压(VRRM)&#xff1a;200V 最大直流阻断电压VR(DC)&#xff1a;200V 平均整流正向电流(IF)&#xff1a;80A 非重复峰值浪涌电流(IFSM)&#xff1a;600A 工作接点温度和储存温度(TJ, …

使用VisualStudio制作上位机(二)

文章目录 使用VisualStudio制作上位机(二)第三部分:GUI内部函数设计使用VisualStudio制作上位机(二) Author:YAL 第三部分:GUI内部函数设计 事件添加 给窗体或窗体按钮相关的操作添加事件有两种方式,事件的名字直白的表面了这是什么事件。 直接双击界面,自动生成窗…

SocketTools.NET 11.0.2148.1554 Crack

添加新功能以简化使用 URL 建立 TCP 连接的过程。 2023 年 8 月 23 日 - 12:35新版本 特征 添加了“HttpGetTextEx”函数&#xff0c;该函数在返回字符串缓冲区中的文本内容时提供附加选项。添加了对“FileTransfer”.NET 类和 ActiveX 控件中的“GetText”和“PutText”方法的…

python模拟登入某平台+破解验证码

概述 python模拟登录平台&#xff0c;遇见验证码识别&#xff01;用最简单的方法seleniumda破解验证码&#xff0c;来自动登录平台 详细 python用seleniumxpath模拟登录破解验证码 先随便找个小说平台用户登陆 - 书海小说网用户登陆 - 书海小说网用户登陆 - 书海小说网 准…

2023年8月22日OpenAI推出了革命性更新:ChatGPT-3.5 Turbo微调和API更新,为您的业务量身打造AI模型

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【Spring Boot】详解条件注解以及条件拓展注解@Conditional与@ConditionalOnXxx

Spring Conditional Spring 4.0提供的注解。作用是给需要装载的Bean增加一个条件判断。只有满足条件才会装在到IoC容器中。而这个条件可以由自己去完成的&#xff0c;可以通过重写Condition接口重写matches()方法去实现自定义的逻辑。所以说这个注解增加了对Bean装载的灵活性。…

【肌电图信号分析】通道肌电图并查找收缩周期的数量、振幅、最大值和持续时间(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

threejs贴图系列(一)canvas贴图

threejs不仅支持各种texture的导入生成贴图&#xff0c;还可以利用canvas绘制图片作为贴图。这就用到了CanvasTexture&#xff0c;它接受一个canas对象。只要我们绘制好canvas&#xff0c;就可以作为贴图了。这里我们利用一张图片来实现这个效果。 基础代码&#xff1a; impo…

sizeof和strlen的对比

文章目录 &#x1f6a9;前言&#x1f6a9;sizeof&#x1f6a9;strlen&#x1f6a9;sizeof和strlen对比 &#x1f6a9;前言 很多小白在学习中&#xff0c;经常将sizeof和strlen弄混了。本篇文章&#xff0c;小编讲解一下sizeof和strlen的区别。&#x1f937;‍♂️ &#x1f6a9…