探索 虚拟化技术+Docker部署与操作

目录

一、你知道哪些云

1.1国内云

1.2国外云

二、Iaas、 Paas、SaaS三种云服务区别

2.1第一层叫做IaaS

2.2第二层就是所谓的PaaS

2.3第三层也就是所谓SaaS

三、虚拟化架构

3.1寄居架构

3.2源生架构

3.3操作系统虚拟化架构

3.4混合虚拟化架构

四、虚拟化特点及优势

五、虚拟化产品有哪些

六、Docker

6.1Docker概述

6.2容器的特点

6.3Docker与虚拟机的区别

6.4容器技术有哪些

6.5容器在内核中支持2种重要技术

6.5.1namespace的六项隔离

6.6Docker核心概念

6.6.1镜像

6.6.2容器

6.6.3仓库

6.7Docker版本

七、Docker的安装

7.1关闭防火墙和SElinux

7.2安装依赖包

7.3设置阿里云镜像源

7.4安装 Docker-CE

7.5设置为开机自动启动

7.7查看 docker 版本信息

7.8查看docker信息

八、Docker 镜像操作

8.1搜索镜像

8.2获取镜像

8.3镜像加速下载

8.4查看镜像

8.4.1查看下载到本地的所有镜像

8.4.2查看下载的镜像文件信息

8.4.3根据镜像的唯一标识 ID 号,获取镜像详细信息

8.5为本地的镜像添加新的标签

8.6删除镜像

8.7存出镜像

8.8载入镜像:将镜像文件导入到镜像库中

8.9上传镜像


一、你知道哪些云

 华为云 、百度云 、移动云、 天翼云 、西部数码云、谷歌云 、腾讯云、 阿里云、亚马逊云等等

1.1国内云

华为云、阿里云、腾讯云、天翼云(私有云) 

1.2国外云

谷歌云 、亚马逊

二、Iaas、 Paas、SaaS三种云服务区别

我们可以把云计算理解成一栋大楼,而这栋楼又可以分为顶楼、中间、低层三大块。那么我们就可以把Iass(基础设施)、Pass(平台)、Sass(软件)理解成这栋楼的三部分。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。

2.1第一层叫做IaaS

IaaS:Infrastructure-as-a-Service(基础设施即服务)

举例:几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,才能让你的业务正常运行。
但现在可以租用IaaS公司提供的场外服务器,存储和网络硬件。这样一来,便大大的节省了维护成本和办公场地。

2.2第二层就是所谓的PaaS

PaaS:Platform-as-a-Service(平台即服务)

举例: PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。

2.3第三层也就是所谓SaaS

SaaS:Software-as-a-Service(软件即服务)

举例:生活中,几乎我们每一天都在接触SaaS云服务,比如:我们平时使用的苹果手机云服务,网页中的一些云服务等。

三、虚拟化架构

根据在整个系统中的位置不同,虚拟化架构分为以下几种:

  • 寄居虚拟化架构
  • 裸金属虚拟化架构
  • 操作系统虚拟化架构
  • 混合虚拟化架构

3.1寄居架构

本机(真实的操作系统)------>虚拟化产品------->虚拟化操作系统或软件

寄居虚拟化架构指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理。

3.2源生架构

裸金属 服务器-------->虚拟化产品

裸金属虚拟化架构指直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理

3.3操作系统虚拟化架构

操作系统虚拟化架构在操作系统层面增加虚拟服务器功能。

操作系统虚拟化架构把单个的操作系统划分为多个容器,使用容器管理器来进行管理。
宿主操作系统负责在多个虚拟服务器(即容器)之间分配硬件资源,并且让这些服务器彼此独立。

3.4混合虚拟化架构

混合虚拟化架构将一个内核级驱动器插入到宿主操作系统内核。

这个驱动器作为虚拟硬件管理器来协调虚拟机和宿主操作系统之间的硬件访问。

四、虚拟化特点及优势

  • 分区:对物理机分区,可实现在单一物理机上同时运行多个虚拟机;
  • 隔离:同一物理机上多个虚拟机相互隔离;
  • 封装:整个虚拟机执行环境封装在独立文件中;
  • 独立:虚拟机无须修改,可运行在任何物理机上。

五、虚拟化产品有哪些

  • 仿真虚拟化(对系统硬件没有要求,性能最低)
  • 半虚拟化 虚拟机 可以使用 真机物理机
  • 全虚拟化直接使用物理硬件,性能高

①vmware客户端
VMware workstation 个人在windows安装的虚拟机
vmware Fusion  MAC


②vmware  服务端   exis VM ware vsphere  裸金属 

全虚拟化 直接使用物理硬件 ,性能高

客户端连接 VM ware vsphere

现企业 网页端连接 VM ware vsphere

③KVM/openstack(开发)  linux环境虚拟机  私有云环境 全虚拟

KVM 基于内核的虚拟机主机

④半虚拟化  reh1 5 自带 xen(虚拟机监视器)   xen-Hypervisor 层

微软 Microsoft Hyper-v 

virtualBox 7.0虚拟盒子

cirix Hypervisor

重点

①KVM linux 内核 来完成的功能和性能
②ESXI 企业用的特别多 除了云,就是它

esxi

KVM

六、Docker

6.1Docker概述

  • Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源
  • Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”
  • Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。
  • Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。
    鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。
     
  • Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
    即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统

6.2容器的特点

容器化越来越受欢迎,因为容器是:

  • 灵活:即使是最复杂的应用也可以集装箱化。
  • 轻量级:容器利用并共享主机内核。
  • 可互换:可以即时部署更新和升级。
  • 便携式:可以在本地构建,部署到云,并在任何地方运行。
  • 可扩展:可以增加并自动分发容器副本。
  • 可堆叠:可以垂直和即时堆叠服务。

6.3Docker与虚拟机的区别

容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。

虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多

特性Docker容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗 50%左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源隔离/限制完全隔离

6.4容器技术有哪些

docker

podman 与docker相似 OCI  redhat

K8s
container  docker核心组件之一

LXC  linux 容器化技术

crio: 轻量级  专门用于 k8s

apche mesos  容器编排平台  

6.5容器在内核中支持2种重要技术

docker本质就是宿主机的一个进程docker是通过namespace实现资源隔离,通过cgroup实现资源限制通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)

6.5.1namespace的六项隔离

namespace的六项隔离
namespace   系统调用参数  隔离内容
UTS   CLONE_NEWUTS   主机名与域名
IPC   CLONE_NEWWIPC信号量、消息队列和共享内存
PIDCLONE_NEWPID  进程编号
NETWORK  CLONE_NEWNET 网络设备、网络栈、端口等
MOUNT     CLONE_NEWNS 挂载点(文件系统)
USER  CLONE_NEWUSER用户和用户组(3.8以后的内核才支持)

6.6Docker核心概念

6.6.1镜像

  • Docker的镜像是创建容器的基础类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。
  • 通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。
  • Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。

6.6.2容器

  • Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。
  • 可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

镜像 nginx  (run) 起来之后的一个实例,可以把容器看做时一个简易版的linux环境容器 就是集装箱(logo上的集装箱)

6.6.3仓库

  • Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。
  • 仓库就是放镜像的场所,做大的公开库 docker hub

Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker 

6.7Docker版本

  • Docker-CE日前是docker公司维护的开源项目,是一个基于Moby项目的免费的容器产品。
  • Docker-EE目前是docker公司维护的闭源项目,是docker公司的商业产品

容器的编排进过几轮的激烈竞争,基本是Google的Kubernetes一家独大

Docker 引|擎主要有两个版本:企业版(EE)和社区版(CE)

每个季度,企业版和社区版都会发布一个稳定版本(即一年有四个版本)

七、Docker的安装

目前 Docker 只能支持 64 位系统。systemctl stop firewalld.service
setenforce 0#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io  安装最新版本
docker-ce-20.10.18systemctl start docker.service
systemctl enable docker.service 
--------------------------------------------------------------------------------------------
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
--------------------------------------------------------------------------------------------

7.1关闭防火墙和SElinux

systemctl stop firewalld
setenforce 0

7.2安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2

7.3设置阿里云镜像源

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

7.4安装 Docker-CE

yum install -y docker-ce docker-ce-cli containerd.io    
#安装最新版本docker-ce-20.10.18

7.5设置为开机自动启动

systemctl start docker.service
systemctl enable docker.service 

  • 安装好的Docker系统有两个程序,Docker服务端和Docker客户端。
  • 其中Docker服务端是一个服务进程,负责管理所有容器。
  • Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。
  • 大部分情况下Docker服务端和客户端运行在一台机器上。

7.7查看 docker 版本信息

docker version

7.8查看docker信息

docker info

八、Docker 镜像操作

8.1搜索镜像

 格式:docker search 关键字(镜像名称或仓库名)

docker search tomcat  搜索tomcat镜像

8.2获取镜像

​​格式:docker pull 仓库名称[:标签]#标签:一个镜像里可能存在多个标签,每个标签可能代表不同的版本
#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为latest标签。

8.3镜像加速下载

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置

②登陆后打开控制台

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://m6wtxrrn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

8.4查看镜像

8.4.1查看下载到本地的所有镜像

docker images

  • REPOSITORY:镜像属于的仓库;
  • TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
  • IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
  • CREATED:镜像创建时间;
  • VIRTUAL SIZE:镜像大小;

镜像下载后存放在 /var/lib/docker 
Docker 相关的本地资源存放在 /var/lib/docker/ 目录下,其中 containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像底层文件。

8.4.2查看下载的镜像文件信息

cat /var/lib/docker/image/overlay2/repositories.json

镜像下载后存放在 /var/lib/docker 
#查看下载的镜像文件信息,主要存放镜像名称与镜像id


8.4.3根据镜像的唯一标识 ID 号,获取镜像详细信息

docker inspect 镜像ID号

8.5为本地的镜像添加新的标签

格式:docker tag 名称:[标签] 新名称:[新标签]docker tag nginx:latest nginx:webdocker images | grep nginx

8.6删除镜像

格式:docker rmi 仓库名称:标签        #当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号           #会彻底删除该镜像注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

8.7存出镜像

将镜像保存成为本地文件
格式:docker save -o 存储文件名 存储的镜像

8.8载入镜像:将镜像文件导入到镜像库中

格式:
docker load < 存出的文件
或者
docker load -i 存出的文件

8.9上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传

docker tag nginx:latest soscscs/nginx:web        #添加新的标签时必须在前面加上自己的dockerhub的usernamedocker login                                #登录公共仓库
Username:soscscspassword:abc123456
docker push soscscs/nginx:web                    #上传镜像

总结:

1、虚拟化

VMware workstation  个人版
VMware  sphere / ESXI   企业级虚拟化
openstack(开发)/KVM  Linux环境虚拟机   私有云环境

2、容器

容器:  提供多台主机上运行应用程序的相同的运行环境
Docker是一个开源的应用容器引擎,基于go语言开发  是容器里面的运行应用的工具,是一个轻量级的虚拟机,可用在docker多个平台去使用
docker容器可以被看做运行在宿主机上的一个进程   容器共享宿主机内核
容器通过namespace(命名空间、名称)资源隔离,   通过cgroup(资源配额)去限制资源

3、Docker核心概念

镜像:运行容器的基础,包含运行应用程序所需的所有内容
容器:是从镜像创建的运行实例
仓库:集中保存镜像的地方(共有仓库 docker hub、私有仓库harbor)

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

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

相关文章

服务网关GateWay基础

1. 网关基础介绍1.1 网关是什么1.2 为啥要用网关1.3 常见的网关组件NginxNetflix ZuulSpring Cloud GatewayKongAPISIX综合比较 2. gateWay的使用2.1 springCloud整合gateway2.2 GateWay的相关用法2.3 GateWay路由使用示例基本用法转发/重定向负载请求动态路由 2.5 断言(Predic…

SourceInsight中文编码格式乱码

参考文章&#xff1a;https://blog.csdn.net/m0_53754590/article/details/135594860 file–>Reload as Encoding —>选择编码格式UTF-8&#xff0c;或者GB2312&#xff1b;哪个显示不乱码设置那个&#xff1b; 我这里选择GB2312

线程池 ThreadPoolExecutor 参数详解

一、引言 提到 Java 线程池&#xff0c;就不得不说 ThreadPoolExecutor&#xff0c;它是 Java 并发包 java.util.concurrent 中的一个类&#xff0c;提供一个高效、稳定、灵活的线程池实现&#xff0c;用于实现多线程并发执行任务&#xff0c;提高应用程序的执行效率。 在《任…

【ARM 裸机】C 语言 led 驱动

前面刚学习了汇编 led 驱动的编写和验证&#xff0c;现在开始就要进入 C 语言 led 驱动编写与验证了 ! 1、C 语言运行环境构建 1.1、设置处理器模式 使 6ULL 处于 SVC 模式下&#xff0c;之前已经提到了处理器的九种模式&#xff0c;参考&#xff1a;【ARM 裸机】汇编 led 驱…

Docker 的基本管理

一. 云的相关知识 1. 关于云 云端服务器都有哪些提供商&#xff1a; 国内&#xff1a; 阿里云&#xff08;Alibaba Cloud&#xff09;&#xff1a; 提供ECS&#xff08;Elastic Compute Service&#xff09;弹性计算服务&#xff0c;包括通用型、计算型、内存型等多种实例…

根据图片模板动态生成图片(Java)

根据图片模板生成图片 背景流程简介代码实现 背景 根据提供的证书模板生成对应证书&#xff0c;证书内容有&#xff0c;姓名&#xff0c;身份证号&#xff0c;证书名称&#xff0c;证书编号&#xff0c;发证日期 根据用户达成的条件自动生成证书图片。 证书模板如下&#xff…

【51单片机项目】基于51单片机自制多功能小键盘/模拟USB键盘【附源码】(STC89C52RC+CH9328)

目录 一、效果展示 二、创作灵感 三、硬件电路 注意事项 工作原理 四、源码 main.c 五、附录 CH9328工作原理 CH9328的模式选择 ​编辑 全键盘键码值表 参考链接 一、效果展示 该小键盘具有三种功能&#xff1a; 1、自动输入开机密码 2、每隔一段时间自动按下ct…

多模态大模型训练数据量以及训练方式

多模态大模型系列&#xff1a;LLaVALLaVA1.5/1.6LLaVA-Med - 知乎就在前两天LLaVA 1.6发布了&#xff0c;带来了更大的分辨率&#xff0c;更强的LLM&#xff0c;在最后补充了这一部分的介绍。 LLaVA repo&#xff1a;https://github.com/haotian-liu/LLaVA/ LLaVA 1.0&#xff…

《C语言深度解剖》(9):深度剖析数据在内存中的存储

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多数据结构与算法点击专栏链接查看&am…

操作系统安全:Windows与Linux的安全标识符,身份鉴别和访问控制

「作者简介」&#xff1a;2022年北京冬奥会中国代表队&#xff0c;CSDN Top100&#xff0c;学习更多干货&#xff0c;请关注专栏《网络安全自学教程》 操作系统有4个安全目标&#xff0c;也就是说想要保证操作系统的安全&#xff0c;就必须实现这4个需求&#xff1a; 标识系统…

系统安全与应用(1)

目录 1、账号安全管理 &#xff08;1&#xff09;禁止程序用户登录 &#xff08;2&#xff09;锁定禁用长期不使用的用户 &#xff08;3&#xff09;删除无用的账号 &#xff08;4&#xff09;禁止账号和密码的修改 2、密码安全管理 设置密码有效期 1&#xff09;针对已…

一句话或一张图讲清楚系列之——ISERDESE2的原理

主要参考&#xff1a; https://blog.csdn.net/weixin_50810761/article/details/137383681 xilinx原语详解及仿真——ISERDESE2 作者&#xff1a;电路_fpga https://blog.csdn.net/weixin_45372778/article/details/122036112 Xilinx ISERDESE2应用笔记及仿真实操 作者&#x…

K8S Prometheus Springboot Actuator ServiceMonitor配置

用于展示Springboot Actuator监控内容 引入Springboot相关的监控配置包 Springboot pom配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><depende…

K8s: Ingress对象, 创建Ingress控制器, 创建Ingress资源并暴露服务

Ingress对象 1 &#xff09;概述 Ingress 是对集群中服务的外部访问进行管理的 API 对象&#xff0c;典型的访问方式是 HTTPIngress-nginx 本质是网关&#xff0c;当你请求 abc.com/service/a, Ingress 就把对应的地址转发给你&#xff0c;底层运行了一个 nginx但 K8s 为什么不…

modelsim波形高度异常,值为X

一、问题 波形高度异常&#xff0c;忽高忽低&#xff0c;正常波形高电平和低电平是统一高度的 timescale 1ns/1nsmodule key_test_tb();//parameter define parameter CLK_PERIOD 20; parameter CNT_MAX 25d25; //仅用于仿真,对应 500nsreg sys_clk; //周期 20ns reg d; wir…

ffmpeg初体验

一&#xff1a;安装 sudo yum install epel-release -y sudo yum update -ysudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpmyum -y install …

Vs Code npm install 报错解决方法

用的人家的前端框架发现是封装过的&#xff0c;要修改人家前端的话还得把前端源码放在Vs Code 上运行&#xff0c;后端放在IDEA上运行&#xff0c;然后前后端并行开发&#xff0c;在配置前端环境时遇到&#xff1a; npm install 这个的原因是我把node下载到D盘了权限不够框框爆…

android学习笔记(五)-MVP模式

1、MVP模式demo的实现&#xff0c;效果下&#xff1a; 2、创建一个Fruit类&#xff1a; package com.example.listview; //Fruit类就是Model&#xff0c;表示应用程序中的数据对象。 public class Fruit {private int imageId;private String name;private String price;publi…

代码随想录算法训练营Day6 | 242.有效的字母异位词 ●349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

基础&#xff1a; 1.哈希表是根据关键值进行直接访问的数据结构&#xff0c;时间复杂度是O(1)&#xff0c;也就是通过数组的索引下标&#xff0c;直接访问数组中的元素哈希表的作用就是用来快速判断一个元素是否出现在集合里。 2.常见的哈希结构&#xff1a; 数组set &#…

计算机视觉 | 交通信号灯状态的检测和识别

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目旨在使用计算机视觉技术检测交通信号灯的状态&#xff0c;主要针对红色和绿色信号灯的识别。通过分析输入图像中的像素颜色信息&#xff0c;利用OpenCV库实现对信号灯状态的检测和识别。 目录 一、项目背景 二、项目功能…