微服务 Spring Cloud 6,用了这么多年Docker容器,殊不知你还有这么多弯弯绕

在这里插入图片描述

目录

    • 一、神之容器 Docker
    • 二、Docker架构图
      • 1、Docker Client 客户端
      • 2、Docker Daemon 守护进程
      • 3、镜像(Image)
      • 4、Docker Driver 驱动模块
      • 5、Docker Graph内部数据库
      • 6、Docker Libcontainer函数库
      • 7、Docker Container 容器实例
    • 三、Docker安装
      • 1、卸载Docker
      • 2、需要的安装包
      • 3、设置镜像仓库
      • 4、安装Docker相关
      • 5、启动Docker
      • 6、使用docker version查看版本
      • 7、启动hello world镜像
      • 8、卸载
    • 四、run的流程和docker原理
      • 1、run的流程
      • 2、与传统虚拟化方式对比
    • 五、Docker镜像常用命令
      • 1、基本命令
      • 2、搜索镜像
      • 3、下载镜像
      • 4、删除镜像
    • 六、docker容器常用命令
      • 1、下载容器
      • 2、docker run [可选参数] image
      • 3、列出所有的运行的容器
      • 4、退出容器
      • 5、删除容器
      • 6、启动和停止容器
      • 7、进入当前正在运行的容器
      • 8、从容器内拷贝文件到主机
      • 9、其它常用命令
    • 七、docker常用命令小结
    • 微服务 Spring Cloud系列

大家好,我是哪吒。

单体应用拆分成微服务后,能够实现快速开发迭代,但因为小服务太多,导致测试和部署的成本提高。

单体应用中,将Spring Boot工程打包成一个war包,然后部署在Linux服务器的Tomcat中就可以了。

拆分成微服务后,修改一个需求,可能会涉及多个微服务,这个时候,被修改过的代码都需要重新测试、打包、部署、上线发布。无形之中,给现场运维人员增加了成倍的工作压力。

微服务通常会在共有云上创建ECS进行扩容,ECS通常只包含了基本的操作系统环境,没有包含运行java的环境jdk,就需要在ECS上安装jdk,而且每个服务依赖的jdk版本可能也不会相同,一般情况下,都会采用jdk8,但有些喜爱前言技术的项目经理,可能要试一下jdk21,毕竟也是一个长期稳定的大版本。

在这里插入图片描述

而容器技术可以解决上面的两个问题(代码部署难、缺环境)。

时下容器技术最火的当属Docker,很多小伙伴也用了多年,只知道它是容器技术,可以将程序和依赖打到Docker里,然后发布在Linux服务器中,就完成了程序的部署,一次构建、到处运行,很牛逼很,至于其它的,就不知道了,也不想知道~

一、神之容器 Docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。

一个完整的Docker由以下七个部分组成:

  1. Docker Client 客户端
  2. Docker Daemon 守护进程,提供Docker Server,用于接收Docker Client的请求,Docker Server 通过路由Router与分发调度,找到相应的 Handler 来执行请求;
  3. Docker Image 镜像,包含Distribution(分发)、Layer(层)、Image(镜像)、Registry(注册中心)、Reference(引用);
  4. Docker Driver 驱动,Docker架构中的驱动模块,它主要通过与Docker守护进程进行交互,实现对Docker容器执行环境的定制和管理;
  5. Docker Graph 内部数据库,Docker Graph是Docker中的一种数据结构,用于记录和跟踪Docker镜像和容器之间的关系;
  6. Libcontainer 函数库,Libcontainer是Docker的底层容器管理库,它提供了一组接口和函数,用于创建和管理容器。Libcontainer直接与内核交互,负责容器的命名空间、cgroup、网络设备等底层操作;
  7. Docker Container 容器,Docker Container是Docker中的容器实例,它是通过Driver和Libcontainer共同协作创建出来的。Driver提供了容器的运行环境定制,而Libcontainer则负责容器的具体创建和管理操作。

在这里插入图片描述

二、Docker架构图

  1. 用户使用 Docker Client(客户端) 与 Docker Daemon 建立通信,并发送请求给后者,客户端和守护程序之间通过REST API进行通信,可以使用UNIX套接字或网络接口;
  2. Docker Daemon(后台守护进程)提供Docker Server,用于接收Docker Client的请求,Docker Server 通过路由Router与分发调度,找到相应的 Handler 来执行请求,Docker Daemon提供Docker Engine,Engine是Docker 架构中的运行引擎,在Docker Engine中,一个Job可以被认为是内部最基本的工作执行单元。Docker可以做的每一项工作,都可以抽象为一个Job。例如,在容器内部运行一个进程,这是一个Job;创建一个新的容器,这也是一个Job。
  3. Docker Image 镜像,包含Distribution(分发)、Layer(层)、Image(镜像)、Registry(注册中心)、Reference(引用)。
  4. Docker Driver 驱动,Docker架构中的驱动模块,它主要通过与Docker守护进程进行交互,实现对Docker容器执行环境的定制和管理;
  5. 当需要容器镜像时,则从 Registry(注册中心) 中下载镜像,并通过镜像管理驱动 Graphdriver 将下载镜像以 Graph 的形式存储;
  6. Docker Graph 内部数据库,Docker Graph是Docker中的一种数据结构,用于记录和跟踪Docker镜像和容器之间的关系;
  7. 一个 Repository 表示某类镜像的仓库,同一个 Repository 内的镜像用 Tag 来区分,一个 Registry 包含多个Repository,一个 Repository 包含同类型的多个 Image,并存储着每一个容器镜像的具体信息; GraphDB是一个基于SQLite的小型图数据库,记录容器镜像之间的关系;
  8. rootfs是Docker容器的根文件系统,它位于bootfs之上,表现为Docker容器的根目录,包含基本的文件和目录。在Docker中,rootfs由内核挂载为“只读”模式,而后通过“联合挂载”技术额外挂载一个“可写”层;
  9. 通过 Networkdriver 完成Docker容器网络环境的配置,其中包括Docker启动时为Docker环境创建网桥等功能;
  10. Docker Execdriver是Docker容器的执行驱动,负责创建容器运行命名空间,负责容器资源使用的统计与限制,负责容器内部进程的真正运行等;
  11. Libcontainer是Docker的底层容器管理库,它提供了一组接口和函数,用于创建和管理容器。Libcontainer直接与内核交互,负责容器的命名空间、cgroup、网络设备等底层操作;
  12. Docker Container是Docker中的容器实例,它是通过Driver和Libcontainer共同协作创建出来的。Driver提供了容器的运行环境定制,而Libcontainer则负责容器的具体创建和管理操作。Docker Container是Docker架构中服务交付的最终体现形式。实现“一次构建,到处运行”的目标,大大提高了应用程序的部署效率和可移植性。

在这里插入图片描述

1、Docker Client 客户端

Docker Client是Docker的客户端工具,也被称为Docker命令行界面(CLI)。它是用户与Docker平台进行交互的主要方式。

Docker Client 的主要作用如下:

  1. 用户交互界面:Docker Client提供了用户友好的命令行交互界面,用户可以通过输入命令来执行各种Docker操作,例如创建容器、启动容器、停止容器、构建镜像等。
  2. 容器管理:通过Docker Client,用户可以方便地管理Docker容器。可以创建新的容器、启动、停止、重启容器,并且还可以查看容器的日志、状态等信息。
  3. 镜像管理:Docker Client也允许用户管理Docker镜像。用户可以搜索、下载、构建、删除镜像等操作,以满足应用程序部署的需求。
  4. 资源配置:用户可以通过Docker Client配置容器的运行资源,例如CPU、内存等。这样可以确保容器在运行时具有合适的资源配置。
  5. 网络通信:Docker Client可以与Docker Daemon进行通信,发送请求并接收响应。它使用REST API或其他通信协议与Docker Daemon进行交互,从而实现对Docker容器的远程管理。

Docker Client是用户与Docker平台进行交互的重要工具。它提供了命令行界面,让用户能够方便地管理Docker容器和镜像,并进行资源配置和网络通信等操作。

2、Docker Daemon 守护进程

Docker Daemon是Docker的守护进程,它是Docker平台的后台服务组件,充当服务器角色。

Docker Daemon 的主要作用如下:

  1. 容器管理:Docker Daemon负责创建、启动、停止、删除和管理Docker容器。它接收来自Docker客户端的请求,并根据请求执行相应的容器管理操作。
  2. 镜像管理:Docker Daemon也管理Docker镜像。它可以下载、上传、构建和删除镜像,并管理镜像的版本控制和安全性。
  3. 网络资源管理:Docker Daemon负责创建和管理Docker容器的网络环境。它配置和管理容器的网络设置,确保容器之间的通信和互相访问。
  4. 数据卷管理:Docker Daemon还管理容器的数据卷,用于持久化存储容器中的数据,保证数据的可靠性和持久性。

Docker Daemon是Docker平台的核心组件,提供容器、镜像、网络和数据卷的管理功能。它扮演着守护进程的角色,确保Docker平台的正常运行和管理。

3、镜像(Image)

在Docker镜像中,Distribution、Layer、Image、Registry和Reference各自扮演了重要角色。

  1. Distribution(分发):通常涉及到Docker镜像的分发和运输。Docker镜像可以通过不同的方式进行分发,例如直接从Registry下载,或者通过特定的工具导入和导出;
  2. Layer(层):Docker镜像由多个layer层组成,每层都是一个只读的文件系统。这种分层设计可以实现共享和复用,提高效率。当镜像中的文件发生变化时,Docker只会下载发生变化的层,而不是整体镜像,节省了时间和宽带;
  3. Image(镜像):镜像是Docker的核心,它是运行容器的基础。镜像包含了运行应用程序的所有文件和依赖,是一个只读模板,可以通过镜像创建新的容器实例;
  4. Registry(注册中心):Registry是存储和管理Docker镜像的服务器。它是用户上传、下载、管理Docker镜像的地方。例如Dokcer Hub就是一个公共的Registry;
  5. Reference(引用):引用指的是Docker镜像的一种标识,通过引用,用户可以指定需要操作的特定镜像;

4、Docker Driver 驱动模块

Docker Driver是Docker的驱动模块,主要负责驱动Docker容器的运行。它通过与操作系统的交互,实现对Docker容器的创建、启动、运行和管理等操作。

Docker Driver 的主要作用如下:

  1. 容器创建与启动:Driver负责根据用户的指令创建新的容器实例,并启动它们。它会与底层操作系统交互,设置好容器运行所需的各种环境和资源。
  2. 容器运行环境定制:Driver可以根据用户的需求定制容器的运行环境。这包括网络配置、存储挂载、进程管理等,确保容器在特定的环境中按照预期运行。
  3. 容器状态管理:Driver维护着容器的状态信息,包括容器的运行状态、资源使用情况等。它可以提供容器状态的查询和监控功能,让用户了解容器的实时状态。
  4. 容器资源管理:Driver还负责管理容器的资源,如CPU、内存、磁盘空间等。它可以对容器使用的资源进行限制和控制,确保容器不会超出预设的资源限制。

Docker Driver是Docker中非常重要的组件,它通过与操作系统的交互,实现了Docker容器的创建、运行和管理等功能,为Docker平台的正常运行提供了底层支持。

在这里插入图片描述

5、Docker Graph内部数据库

Docker Graph是Docker中的一种数据结构,用于记录和跟踪Docker镜像和容器之间的关系。

Docker Graph 的主要作用如下:

  1. 关系追踪:Docker Graph能够记录容器和镜像之间的关系,包括哪个镜像被用来创建哪个容器,容器之间是否存在依赖关系等。这种关系追踪使得用户能够更好地理解和管理容器与镜像之间的关联。
  2. 资源管理:通过Docker Graph,用户可以更方便地进行资源管理,例如查找和删除不再需要的镜像和容器。它提供了一种全局视图,帮助用户了解整个Docker环境中的资源利用情况。
  3. 性能优化:Docker Graph可以提供一些性能方面的优化。通过分析和理解Graph中的关系,Docker可以智能地选择最合适的镜像层和缓存策略,从而提高镜像构建和容器启动的速度。

Docker Graph在Docker的较新版本中可能已经被替代或集成到其他组件中,因此具体实现和用法可能会因版本而异。

6、Docker Libcontainer函数库

Docker Libcontainer函数库中包含:

  1. namespaces:namespaces技术用于实现Docker容器之间的隔离。通过namespaces,可以实现网络、通信、文件、权限等对象的隔离,确保容器在独立的环境中运行,并且相互之间不会产生干扰。这种隔离机制有助于提高容器的安全性和稳定性。
  2. Cgroups:Cgroups(Control Groups)用于对Docker容器所占用的系统资源进行限制和管理。它可以控制容器的CPU、内存、磁盘I/O等资源的使用量,确保容器不会消耗过多的资源,从而防止系统过载或资源耗尽。
  3. netlink:netlink是Linux内核提供的一种用于内核与用户空间进程之间通信的机制。在Docker Libcontainer中,netlink主要用于完成Docker容器的网络环境配置和创建。它使得容器能够与网络进行交互,实现网络通信和功能。
  4. capabilities:capabilities机制用于在Docker容器内部对进程的权限进行更精细的控制。它将超级用户root的权限分割成各种不同的capabilities权限,允许根据需求将特定的权限授予容器内的进程。这种权限管理方式增强了容器的安全性,防止潜在的安全漏洞和攻击。

这些组件和技术在Libcontainer中协作,共同实现了Docker容器的隔离、资源管理、网络通信和权限控制等功能,为Docker平台的稳定性和安全性提供了重要支持。

7、Docker Container 容器实例

Docker Container是Docker中的容器实例,它是通过Driver和Libcontainer共同协作创建出来的。Driver提供了容器的运行环境定制,而Libcontainer则负责容器的具体创建和管理操作。Docker Container是Docker架构中服务交付的最终体现形式。实现“一次构建,到处运行”的目标,大大提高了应用程序的部署效率和可移植性。

Docker Container 的主要作用如下:

  1. 应用程序的隔离运行:Docker Container提供了轻量级、独立的运行环境,使得应用程序可以在隔离的容器中运行,避免不同应用之间的干扰和冲突;
  2. 环境一致性:因为Docker Container包含了应用程序及其依赖项,所以可以确保在任何环境中都能以相同的方式运行,提高了应用的可移植性和稳定性;
  3. 资源控制和隔离:Docker Container允许对每个容器进行资源限制,例如CPU、内存等。这样可以防止某个容器消耗过多资源,确保系统的稳定运行;
  4. 快速部署和扩展:Docker Container的轻量级特性使得它可以快速启动和停止,非常适合于云计算和微服务架构中的快速部署和横向扩展;
  5. 版本控制和回滚:通过标记和版本控制,可以轻松管理和回滚容器的版本,提高了应用程序的版本管理和部署的灵活性;
  6. 安全性增强:Docker Container提供了隔离的运行环境,可以减少系统漏洞和攻击面,提高应用程序的安全性。

Docker Container是Docker技术的核心组件之一,它提供了轻量级、隔离的运行环境,用于部署、运行和管理应用程序。它的出现改变了传统应用部署和运维的方式,提高了开发、测试、运维的效率和质量。

三、Docker安装

1、卸载Docker

 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2、需要的安装包

yum install -y yum-utils

3、设置镜像仓库

yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

用国内的

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

更新软件包索引

yum mackecache fast

4、安装Docker相关

ce社区版,ee企业版,推荐安装企业版

yum install docker-ce docker-ce-cli containerd.io

在这里插入图片描述

5、启动Docker

systemctl start docker

6、使用docker version查看版本

在这里插入图片描述

7、启动hello world镜像

docker run hello-world

在这里插入图片描述

8、卸载

yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

四、run的流程和docker原理

1、run的流程

在这里插入图片描述

2、与传统虚拟化方式对比

这就是Docker为何比虚拟化更快的原因,Docker有着比虚拟机更少的抽象层,docker利用的是宿主机的内核,VM需要的是Guest OS。

在这里插入图片描述

五、Docker镜像常用命令

1、基本命令

docker version
docker info
docker 命令 --help #万能命令

docker images

在这里插入图片描述
解释:

  • REPOSITORY:镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像的ID
  • CREATE:镜像的创建时间
  • SIZE:镜像的大小

可选项

-a:列出全部的镜像
-q:只显示镜像的ID

2、搜索镜像

docker search

可选项
–filter-STATUS-3000 #搜索大于3000的

3、下载镜像

指定版本下载

docker pull 镜像名[:tag]

在这里插入图片描述

4、删除镜像

docker rmi -f 镜像id

六、docker容器常用命令

1、下载容器

docker pull centos

2、docker run [可选参数] image

参数说明:

  1. –name 容器名称
  2. -d 后台方式运行
  3. -it 使用交互方式运行,进入容器查看内容(例如:docker run -it centos /bin/bash)
  4. -p 指定容器的端口号 -p 8080:8080(主机端口:容器端口)

3、列出所有的运行的容器

docker ps [参数]

  1. -a 列出当前正在运行的容器
  2. -n 显示最近创建的容器
  3. -q 只显示容器的编号

例如:docker ps -aq 显示当前正在运行的容器的编号

4、退出容器

exit

5、删除容器

  1. docker rm 容器id 不能删除正在运行的容器
  2. docker rm -f $(docker ps -a) 删除所有的容器
  3. docker ps -a -q|xargs docker rm 删除所有的容器

6、启动和停止容器

  1. docker start 容器id
  2. docker restart 容器id
  3. docker stop 容器id
  4. docker kill 容器id 强制停止

7、进入当前正在运行的容器

  1. 方式一:docker exec -it 容器id /bin/bash 进入容器后开启一个新的终端(常用)
  2. 方式二:docker attach 容器id 进入容器当前正在执行的终端

8、从容器内拷贝文件到主机

docker cp 容器id:容器内路径 主机路径

例如:docker cp 容器id:/home/test.java /home

9、其它常用命令

(1)后台启动容器 -d

(2)查看日志命令

docker logs --help

显示指定行数的日志:

docker logs -tf --tail 10 容器id

-f:内容,,,-t:时间

例如:循环执行

docker run -d centos /bin/sh -c "while;do echo hello world;sleep 1;done"

(3)显示容器中的进行信息

查看docker内部的进程信息:docker top 容器id

(4)查看容器的元数据

docker inspect --help

显示容器的所有信息:

docker inspect 容器id

七、docker常用命令小结

常用命令命令含义
attach当前shell下attach连接指定运行镜像
build通过Dockerfile定制镜像
commit提交当前容器为新的镜像
cp从容器中拷贝指定文件或者目录到宿主机中
create创建一个新的容器,同run 但不启动容器
diff查看docker容器变化
events从docker服务获取容器实时事件
exec在已存在的容器上运行命令
export导出容器的内容流作为一个tar归档文件(对应import)
history展示一个镜像形成历史
images列出系统当前镜像
import从tar包中的内容创建一个新的文件系统映像(对应export)
info显示系统相关信息
inspect查看容器详细信息
kill强制停止指定docker容器
load从一个tar包中加载一个镜像(对应save)
login注册或者登陆一个docker源服务器
logout从当前Docker registry退出
logs输出当前容器日志信息
pause暂停容器
port查看映射端口对应的容器内部源端口
ps列出容器列表
pull从docker镜像源服务器拉取指定镜像或者库镜像
push推送指定镜像或者库镜像至docker源服务器
rename重命名容器
restart重启运行的容器
rm移除一个或者多个容器
rmi移除一个或多个镜像(无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除)
run创建一个新的容器并运行一个命令
save保存一个镜像为一个tar包(对应load)
search在docker hub中搜索镜像
start启动容器
stats统计容器使用资源
stop停止容器
tag给镜像打标签
top查看容器中运行的进程信息
unpause取消暂停容器
version查看容器版本号
wait截取容器停止时的退出状态值

微服务 Spring Cloud系列

微服务 Spring Cloud 1,服务如何拆分?使用微服务的注意事项?

微服务 Spring Cloud 2,一文讲透微服务核心架构(注册中心、服务通信、服务监控、服务追踪、服务治理)

微服务 Spring Cloud 3,如何对微服务进行有效的监控?

微服务 Spring Cloud 4,分布式系统如何进行数据分区

微服务 Spring Cloud 5,一图说透Spring Cloud微服务架构


🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sui学术研究奖公布,资助研究者探索人工智能、能源市场和区块链游戏

Sui基金会高兴地宣布首轮Sui学术研究奖(SARAs)的获奖者。SARAs计划提供资助,支持推动Sui区块链技术的研究。学术和研究界对我们的初次征集呈现出大量高质量的提案。 已接受的九个提案涵盖了各种主题,如token经济学、智能合约机制…

微信个人号二次开发之检测好友

简要描述: 检测好友状态 请求URL: http://域名地址/userPrivacySettings 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选…

【解刊】IEEE(trans),中科院2区,顶刊,CCF-A类,圈外人别想投?

计算机类 • 好刊解读 今天小编带来IEEE旗下计算机领域好刊的解读,如有相关领域作者有意向投稿,可作为重点关注!后文有真实发表案例,供您投稿参考~ 01 期刊简介 IEEE Transactions on Computers ☑️出版社:IEEE …

跨境电商商城源码:实现多语言、多货币、多商户入驻的全面解决方案

随着全球电子商务的迅猛发展,越来越多的商家和消费者选择在跨境电商平台上进行交易。为了满足不同国家和地区的需求,多语言、多货币、多商户入驻已成为跨境电商平台的核心竞争力。本文将为您介绍如何通过跨境电商商城源码实现这些功能,帮助您…

人工智能与发电玻璃:未来能源技术的融合

人工智能与发电玻璃:未来能源技术的融合 摘要:本文探讨人工智能与发电玻璃这两项技术的结合,共同推动能源领域的创新。本文将介绍发电玻璃工作原理及应用、人工智能在发电玻璃的应用领域以及共同为可持续能源发展做出贡献。 一、引言 随着科…

一款好用的jpeg分析软件 JPEGsnoop

最近解码器解码jpeg的时候出了问题,为了追踪问题,找到了这款免费好用的jpeg分析软件- JPEGsnoop。 顶礼膜拜。 贴上链接地址: https://github.com/ImpulseAdventure/JPEGsnoop/releases 上面已经有编译好的win10 exe了 下载后解压&#x…

亚马逊鲲鹏系统强大的指纹系统可有效防止账号关联

亚马逊鲲鹏系统最新的防指纹技术支持绑定不同的代理IP,可以根据ip创建不同的指纹环境,让账号伪装成来自不同地点、不同设备的流量,每个账号环境隔离开来,实现了完全独立的操作任务,避免了账户指纹关联和操作轨迹关联。…

基于springboot实现生鲜超市管理的设计与实现系统【项目源码】

基于springboot实现生鲜超市管理的设计与实现系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点,而且Java是开源的,拥有全世界最大的开发者专业社群…

回顾 — SFA:简化快速 AlexNet(模糊分类)

模糊图像的样本 一、说明 在本文回顾了基于深度学习的模糊图像分类(SFA)。在本文中:Simplified-Fast-AlexNet (SFA)旨在对图像是否因散焦模糊、高斯模糊、雾霾模糊或运动模糊而模糊进行分类。 二、大纲 图像模糊建模简要概述简化快速 AlexNet…

【Git】Git的GUI图形化工具ssh协议IDEA集成Git

一、GIT的GUI图形化工具 1、介绍 Git自带的GUI工具,主界面中各个按钮的意思基本与界面文字一致,与git的命令差别不大。在了解自己所做的操作情况下,各个功能点开看下就知道是怎么操作的。即使不了解,只要不做push操作,…

测量均值频率、功率、带宽

测量均值频率、功率、带宽 生成以 1024 kHz 采样的啁啾信号的 1024 个采样点。啁啾信号的初始频率为 50 kHz,采样结束时达到 100 kHz。添加高斯白噪声,使信噪比为 40 dB。 nSamp 1024; Fs 1024e3; SNR 40;t (0:nSamp-1)/Fs;x chirp(t,50e3,nSamp/…

图像实时采集系统

本方案主要在于解决图像实时采集系统对算法校正的仿真实验,以及采集卡接收电路的验证。 由于图像实时跟踪处理系统需要大量的外场景实验,大部分时候只能通过采集的现场图像以在电脑软件中读取图片的形式来进行验证算法,而无法通过采集卡对接…

DMP大湾区工博会开幕在即,狂撒100万福利,邀您与2200+展商面对面

截止11月9日,DMP大湾区工博会2023已迎来超100万人关注。大湾区工博会将于11月27-30日在深圳国际会展中心(宝安)举办。作为工业制造行业的风向标,展会将带来2200多家全球参展企业、40多场主题演讲、数千项行业新品技术。 本届DMP大湾区工博会,…

学习c#的第九天

C# 可空类型&#xff08;Nullable&#xff09; C# 可空类型&#xff08;Nullable&#xff09; 可空类型允许我们在值类型中包含 null 值&#xff0c;这在处理数据库查询结果或需要表示缺失值的情况时非常有用。 声明一个可空类型的语法如下&#xff1a; < data_type>…

【rl-agents代码学习】01——总体框架

文章目录 rl-agent Get startInstallationUsageMonitoring 具体代码 学习一下rl-agents的项目结构以及代码实现思路。 source: https://github.com/eleurent/rl-agents rl-agent Get start Installation pip install --user githttps://github.com/eleurent/rl-agentsUsage…

大数据-之LibrA数据库系统告警处理(ALM-12041 关键文件权限异常)

告警解释 系统每隔一个小时检查一次系统中关键目录或者文件权限、用户、用户组是否正常&#xff0c;如果不正常&#xff0c;则上报故障告警。 当检查到权限等均正常&#xff0c;则告警恢复。 告警属性 告警ID 告警级别 可自动清除 12041 严重 是 告警参数 参数名称 …

​ArcGIS Pro怎么生成山顶点

山顶点是指山脉、山丘或山脉系统中最高的地点&#xff0c;通常是山的最高峰&#xff0c;这是山地地貌中的最高点&#xff0c;往往是山脉的标志性特征之一&#xff0c;这里为大家介绍一下如何使用ArcGIS Pro获取山顶点&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用…

大洋钻探系列之二IODP 342航次是干什么的?(上)

本文简单介绍一下大洋钻探IODP 342航次&#xff0c;从中&#xff0c;我们一窥大洋钻探航次的风采。 IODP342的航次报告在网络上可以下载&#xff0c;英文名字叫《Integrated Ocean Drilling ProgramExpedition 342 Preliminary Report》&#xff0c;航次研究的主要内容是纽芬兰…

虹科方案 | 汽车电子电气架构设计仿真解决方案

来源&#xff1a;虹科汽车电子 虹科方案 | 汽车电子电气架构设计仿真解决方案 导读 本文将介绍面向服务&#xff08;SOA&#xff09;的汽车TSN网络架构&#xff0c;并探讨RTaW-Pegase仿真与设计软件在TSN网络设计中的应用。通过RTaW将设计问题分解&#xff0c;我们可以更好地理…

《网络协议》04. 应用层(DNS DHCP HTTP)

title: 《网络协议》04. 应用层&#xff08;DNS & DHCP & HTTP&#xff09; date: 2022-09-05 14:28:22 updated: 2023-11-12 06:55:52 categories: 学习记录&#xff1a;网络协议 excerpt: 应用层、DNS、DHCP、HTTP&#xff08;URI & URL&#xff0c;ABNF&#xf…