小阿轩yx-Docker Compose与私有仓库部署

小阿轩yx-Docker Compose 与私有仓库部署

Docker 的网络模式

Docker 四种网络模式

网络模式参数说明
host 模式- - net=host

容器和宿主机共享 Network namespace

container 模式- - net={id}

容器和另外一个容器共享 Network namespace。 kubernetes 中的pod就是多个容器共享一个 Network namespace

none 模式- - net=none

容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配 veth pair 和网桥连接,配置IP等

bridge 模式- - net=bridge

默认为该模式,通过 -p 指定端口映射

Bridge 模式

  • 是 docker 的默认网络模式
  • 不写-net参数,就是 bridge 模式

bridge 模式图

Host 模式

  • 容器不会获得一个独立的 Network Namespace,是和宿主机共用一个 Network Namespace
  • 容器不会虚拟出自己的网卡、配置自己的 IP 等,使用宿主机的 IP 和端口
  • 容器的文件系统、进程列表等和宿主机是隔离的

Host 模式图

Container 模式

  • 指定新创建的容器和已经存在的容器共享一个 Network Namespace,不和宿主机共享
  • 不会创建自己网卡、配置自己的 IP ,是和指定的容器共享 IP、端口范围
  • 除了网络方面,文件系统、进程列表还是隔离的

Container 模式图

None 模式

  • 容器拥有自己的 Network Namespace,但是不为 Docker 容器进行网络配置
  • 容器没有网卡、IP、路由等信息,需要手动设置

None 模式图

Docker 重启策略

  • 面向生产环境的一个启动策略,在开发过程中可以忽略该策略
  • 都是由 Docker 守护进程完成的,因此与守护进程息息相关

no

  • 默认策略,在容器退出时不重启容器

on-failure

  • 在容器非正常退出时(退出状态非0),才会重启容器

on-failure:3

  • 指定启动的次数,在容器非正常退出时重启容器,最多重启3次

always

  • 在容器退出时总是重启容器

unless-stopped

  • 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器

Docker 容器的常见退出状态码

状态码说明
0正常退出
125Docker 守护进程本身错误
126容器启动后,要执行的默认命令无法调用
127容器启动后,要执行的默认命令不存在
其他容器启动后正常执行的命令返回的状态码
  • 通过状态码可以大概判断出容器的情况

Docker Compose 工具

什么是 Docker Compose

  • 前身是 Fig
  • 它是一个定义及运行多个 Docker 容器的工具

文件格式以及编写注意事项

YAML

  • 一种标记语言
  • 它可以很直观的展示数据序列化格式
  • 可读性高
  • 类似于 XML 数据描述语言,语法比 XML 简单的很多
  • 数据结构通过缩进来表示
  • 连续的项目通过减号来表示

使用 YAML 时需要注意事项

  • 不支持制表符 tab 键缩进、需要使用空格缩进
  • 通常开头缩进两个空格
  • 字符后缩进一个空格,如冒号、逗号、横杆
  • 用#号注释
  • 如果包含特殊字符,要使用单引号('')引起来
  • 布尔值(true、false、yes、no、on、off)必须用引号("")括起来,这样分析器会将它们截石位字符串

常用字段

常用命令

Harbor 私有仓库

什么是 Harbor

  • 是 VMWare 公司开源的企业级 Docker Registry 项目
  • 扩展了开源 Docker Distribution
  • 是一个企业级私有 Registry 服务器

目标

  • 帮助用户迅速搭建一个企业级的 Docker Registry 服务

它以 Docker 公司开源的 Registry 为基础,提供企业用户需求的功能

  • 管理 UI
  • 基于角色的访问控制(Role Based AccessControl)
  • AD/LDAP 集成
  • 审计日志(Auditlogging)

特点

  • 更好的性能和安全
  • 提升用户使用 Registry 构建和运行环境传输镜像的效率

Harbor 的优势

基于角色控制

  • 用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限

基于镜像的复制策略

  • 镜像可以在多个 Harbor 实例之间进行复制(同步),适用于负载平衡、高可用性、多数据中心、多混合多云场景

支持 LDAP/AD

  • Harbor 与现有的企业 LDAP/AD 集成,用于用户认证和管理

删除图像和收集垃圾

  • 镜像可以被删除,也可以回收镜像占用空间

图形 UI

  • 用户可以轻松浏览、搜索镜像仓库对项目进行管理

审计

  • 对存储库的所有操作都进行记录

RESTful API

  • 用户大多数管理操作的 RESTful API,易于与外部系统集成

Harbor 的构成

Harbor 架构上主要有五个组件

  • Proxy
  • Core services
  • Database(Harbor-db)
  • Logcollector(Harbor-log)
Proxy
  • Harbor 的 Registry、UI、Token 等服务通过一个前置的反向代理统一接收浏览器和 Docker 客户端的请求,并将请求转发给后端不同的服务
Registry
  • 负责储存 Docker 镜像,并处理 Docker push/pul 命令。
  • 由于要对用户进行访问控制,即不同用户对 Dockerimage 有不同的读写权限,Registry 会指向一个 Token 服务,强制用户的每次 Docker pull/push 请求都要携带一个合法的 Token,Registry 会通过公钥对Token 进行解密验证。
Core services
  • 这是 Harbor 的核心功能

主要提供的服务

Ul(Harbor-ui)

  • 提供图形化界面,帮助用户管理 Registry 上的镜像(image),并对 用户进行授权。

Webhook

  • 为了及时获取Registry上image 状态变化的情况,在 Registry上 配 置 Webhook, 把状态变化传递给 UI 模块。

Token 服务

  • 负责根据用户权限给每个 Dockerpush/pul 命令签发 Token。Docker 客 户端向 Registry 服务发起的请求,如果不包含 Token,会被重定向,获得 Token 后再 重新向Registry 进行请求
Database(Harbor-db)
  • 为 coreservices 提供数据库服务,负责存储用户权限、审计日志、Docker image 分组信息等数据
Log collector(Harbor-log)
  • 为了帮助监控 Harbor 运行,负责收集其它组件的 log,供日后进行分析

  • Harbor 的每个组件都是以 Docker 容器的形似构建的,因此,使用 Docker Compose 来对它进行部署

部署 Harbor 私有仓库

资源列表

操作系统主机名配置IP
CentOS7.9-101harbor、client2C4G192.168.10.101
CentOS7.9-106harbor2C4G192.168.10.106

使用 Compose 基本上分为三步

  • Dockerfile 定义应用的运行环境
  • docker-compose.yml 定义组成应用的各服务
  • docker-compose up 启动整个应用

基础环境

  • 两个节点都要操作
  • 更改使用最新本v2.29.1的 docker-compose

提升权限

[root@localhost ~]# chmod +x docker-compose

查看版本 

[root@localhost ~]# docker-compose -version
docker compose version v2.29.1

将 images 镜像包通过 Xftp 上传至虚拟机

进入 images 目录

[root@localhost ~]# cd images/

执行导入的脚本文件

[root@localhost images]# bash imp_docker_img.sh

退出目录并查看镜像

[root@localhost images]# cd
[root@localhost ~]# docker images
REPOSITORY                TAG            IMAGE ID            CREATED
mysql                     latest         99afc808f15b        12 month
cirrors                   latest         2008a6682996        15 month
httpd                     latest         daablfa13f86        17 month
nginx                     latest         904b8cb13b93        17 month
centos                    7              eebbee3f44bd        2 years
gliderlabs/registrator    latest         3b59190c6c80        8 years

Docker Compose 文件结构

编写编排文件

compose 默认的模版文件名字为 docker-compose.yaml

[root@localhost ~]# vim docker-compose.yaml
services:webapp:image: 'httpd:latest'ports:- "80:80"- "443:443"volumes:- "/var/www/html:/usr/local/apache2/htdocs:rw"
  • httpd 的容器中网站的根目录在:/usr/local/apache2/htdocs
  • Compose 文件格式有3个版本:1.x、2.x、3.x,目前主流的为 3.x,其支持 docker 1.13.0 及其以上版本

Docker Compose 常用命令

执行文件,生成容器

[root@localhost ~]# docker-compose up -d
[+] Running 2/2
√ Network root_default    Created            0.1s
√ Network root_webapp-1    Started           0.6s
  • 不加选项-d会在前台运行,结束该进程,这个容器就关闭了,加上-d后可以让容器在后台持续运行 

列出当前运行的容器

[root@localhost ~]# docker-compose psName            Command        State         Ports       
-------------------------------------------------------------
root_webapp_1   httpd-foreground   Up      0.0.0.0:80->80/tcp

进入 html 目录

[root@localhost ~]# cd /var/www/html/

创建一个测试页面

[root@localhost html]# echo test>index.html

用浏览器访问

  • 192.168.10.101

退出到家目录并查看服务日志

[root@localhost html]# cd
[root@localhost ~]# docker-compose logs webapp

port:打印绑定的公共端口,下面命令可以输出httpd服务80端口和443端口所绑定的公共端口

[root@localhost ~]# docker-compose port webapp 80
0.0.0.0:80[root@localhost ~]# docker-compose port webapp 443
0.0.0.0:443

停止正在运行的服务器

[root@localhost ~]# docker-compose stop webapp
[+] Stopping 1/1
√ Container root-webapp-1    Stopped            1.2s

启动存在的服务器

[root@localhost ~]# docker-compose start webapp
[+] Running 1/1
√ Container root-webapp-1    Started            0.4s

重启存在的服务器

[root@localhost ~]# docker-compose restart webapp
[+] Restarting 1/1
√ Container root-webapp-1    Started            1.6s

删除指定的容器

[root@localhost ~]# docker-compose stop webapp
[root@localhost ~]# docker-compose rm webapp
? Going to remove root-webapp-1 Yes
[+] Remove 1/0
√ Container root-webapp-1 Removed            0.0s

kill:通过发送 SIGKILL 信号来杀死指定服务的容器

[root@localhost ~]# docker-compose kill webapp

先注释掉文件中的端口

[root@localhost httpd]# cat docker-compose.yml services:webapp:image: 'httpd:latest'
#    ports: 
#      - "9090:80"
#      - "443:443"volumes:- "/var/www/html:/usr/local/apache2/htdocs:rw"

杀死并删除所有的容器

[root@localhost ~]# docker-compose kill webapp
[root@localhost ~]# docker-compose em webapp

 给容器做副本

[root@localhost ~]# docker-compose scale webapp=3
[+] Running 3/3
√ Container root-webapp-3 Started                0.4s
√ Container root-webapp-1 Started                0.4s
√ Container root-webapp-2 Started                0.4s

查看状态

[root@localhost ~]# docker-compose ps
compose 案例

进入目录

[root@localhost ~]# cd /opt

编写配置文件

[root@localhost ~]# vim docker-compose.yaml
services:webapp:image: 'nginx'ports:- "80:80"volumes:- "/www/html:/www/html:rw"- "/opt/nginx/nginx.conf:/etc/nginx/nginx.conf"

创建配置文件

[root@localhost ~]# mkdir /opt/nginx

进入目录

[root@localhost ~]# cd nginx/

将 nginx 配置上传至服务器

修改 nginx 配置文件

[root@localhost nginx]# vim nginx.conf
location / {//30行root   /www/html;index  index.html index.htm index.php;}location ~ \.php$ {//40行root           /www/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;//43行fastcgi_param  SCRIPT_FILENAME  /www/html$fastcgi_script_name;include        fastcgi_params;}
//末尾删除
daemon off;

退出到 opt 目录

[root@localhost nginx]# cd ..

执行文件,生成容器

[root@localhost opt]# docker-compose up -d
[+] Running 2/2
√ Network opt_default        Created            0.1s
√ Container opt-webnginx-1   Started            0.4s

列出当前运行的容器

[root@localhost ~]# docker-compose up
或
[root@localhost ~]# docker-compose ps

新开一个192.168.10.106主机

将 harbor-offline-installer-v2.4.3.tgz源码包通过Xftp上传至106服务器

解压源码包

[root@localhost ~]# tar zxvf harbor-offline-installer-v2.4.3.tgz

进入目录并查看

[root@localhost ~]# cd harbor
[root@localhost harbor]# ls
common.sh  harbor.v2.4.3.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

配置harbor

将配置文件模板拷贝一份,并命名为harbor.yml,这是默认的配置文件名称

[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml

解压 harbor 包

[root@localhost harbor]# tar zxvf harbor.v2.4.3.tar.gz
  • 其实也没必要解压(包很大,几百兆)

修改配置文件

[root@localhost harbor]# vim harbor.yml
# 修改为当前所在节点的ip
# 第5行
hostname: 192.168.10.106# 登录界面的密码
harbor_admin_password: pwd123# 将https相关的配置给注释掉,这里为了简单只使用http,而且也可以在nginx那一层去做https
# https related config
#https:# https port for harbor, default is 443
#  port: 443# The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path
  • 注释掉 https 相关的行

运行 Harbor 的安装脚本

[root@localhost harbor]# ./install.sh[Step 0]: checking if docker is installed ...Note: docker version: 26.1.4[Step 1]: checking docker-compose is installed ...Note: docker-compose version: 2.29.1[Step 2]: loading Harbor images ...
Loaded image: goharbor/prepare:v2.4.3
Loaded image: goharbor/harbor-jobservice:v2.4.3
Loaded image: goharbor/harbor-registryctl:v2.4.3
Loaded image: goharbor/registry-photon:v2.4.3
Loaded image: goharbor/harbor-core:v2.4.3
Loaded image: goharbor/notary-signer-photon:v2.4.3
Loaded image: goharbor/clair-photon:v2.4.3
Loaded image: goharbor/trivy-adapter-photon:v2.4.3
Loaded image: goharbor/harbor-log:v2.4.3
Loaded image: goharbor/nginx-photon:v2.4.3
Loaded image: goharbor/clair-adapter-photon:v2.4.3
Loaded image: goharbor/chartmuseum-photon:v2.4.3
Loaded image: goharbor/harbor-portal:v2.4.3
Loaded image: goharbor/harbor-db:v2.4.3
Loaded image: goharbor/redis-photon:v2.4.3
Loaded image: goharbor/notary-server-photon:v2.4.3[Step 3]: preparing environment ...[Step 4]: preparing harbor configs ...
prepare base dir is set to /usr/local/src/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-db     ... done
Creating harbor-portal ... done
Creating redis         ... done
Creating registryctl   ... done
Creating registry      ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
✔ ----Harbor has been installed and started successfully.----

查看状态

[root@localhost harbor]# docker-compose ps
或
[root@localhost harbor]# docker images

安装完成,使用浏览器访问Harbor,正常情况下应能进入登录界面

  • 192.168.10.106

账号

  • admin

密码

  • Harbor12345

登录成功

添加项目

  • 到这一步106做一个快照

添加用户

添加项目成员

将 192.168.10.101 当作客户端

查看镜像

[root@localhost ~]# docker images
REPOSITORY                TAG            IMAGE ID            CREATED
mysql                     latest         99afc808f15b        12 month
cirrors                   latest         2008a6682996        15 month
httpd                     latest         daablfa13f86        17 month
nginx                     latest         904b8cb13b93        17 month
centos                    7              eebbee3f44bd        2 years
gliderlabs/registrator    latest         3b59190c6c80        8 years

修改 cirrors 名字

[root@localhost ~]# docker tag cirros 192.168.10.106/kubernetes/cirros:v1

查看镜像

[root@localhost ~]# docker images
//改名字之后的镜像
192.168.10.106/kubernetes/cirros    v1    2008a6682996 15 months    ago    16.3MB

登录镜像仓库

[root@localhost ~]# docker login 192.168.10.106
Username: zhangsan
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/configJson.
Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

上传镜像

[root@localhost ~]# docker push 192.168.10.106/kubernetes/cirros:v1
The push refers to repository [192.168.10.106/kubernetes/cirros]
d8083b07a8e2: Pushed
b42b2edd1b7f: Pushed
032cc20cbfb2: Pushed
v1: digest:sha256:d573d48afdadelef2c5bba38681e8c8ce0794e985409e7d5c35a2c3653c547aa 
size: 943

用浏览器验证查看

拉取镜像复制命令 

再新开一个192.168.10.102服务器恢复 docker 快照

将复制的命令粘贴在102上

[root@localhost ~]# docker pull 192.168.10.106/kubernetes/cirros:v1
v1: Pulling from kubernetes/cirros
Digest:sha256:d573d48afdadelef2c5bba38681e8c8ce0794e985409e7d5c35a203653c547aa
Status: Downloaded newer image for 192.168.10.106/kubernetes/cirros:v
192.168.10.106/kubernetes/cirros:v1

 查看镜像

[root@localhost ~]# docker images
REPOSITORY                            TAG        IMAGE ID            CREATED        SIZE
192.168.10.106/kubernetes/cirros      v1         2008a668299615      months ago     16.3MB

小阿轩yx-Docker Compose 与私有仓库部署

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

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

相关文章

于博士Cadence视频教程学习笔记备忘

标签:PCB教程 PCB设计步骤 cadence教程 Allegro教程 以下是我学习该视频教程的笔记,记录下备忘,欢迎大家在此基础上完善,能回传我一份是最好了,先谢过。 备注: 1、未掌握即未进行操作 2、操作软件是15.…

论文阅读笔记:ST-MetaNet-2

目录 预备知识 定义1:城市交通 定义2:Geo-graph属性 问题1 方法 RNN 元学习器 元图注意力网络 元循环神经网络 预备知识 在本节中,我们介绍定义和问题陈述。为简洁起见,我们在表1中提供了一个注释表。 假设有个位置&…

40.【C语言】指针(重难点)(E)

目录 13.指针的使用和传址调用 14.数组名的理解 *数组名就是数组首元素的地址 *两个例外 *使用指针访问数组 *一维数组的传参本质 往期推荐 承接上篇39.【C语言】指针(重难点)(D) 13. 指针的使用和传址调用 见29.【C语言】函数系…

Android开发-使用FFmpeg-Android进行音视频处理

使用 FFmpeg-Android 进行音视频处理 1. 前言2. FFmpeg-Android 简介3. 功能介绍及实现3.1. 视频字幕添加Kotlin 代码示例:3.2. 尺寸剪切Kotlin 代码示例:3.3. 添加或去除水印Kotlin 代码示例:3.4. 时长截取Kotlin 代码示例:3.5. …

抠图软件哪个好用?3款免费抠图软件!一键智能抠图,高清又高效小白必备!

前言 目前市场上有众多出色的抠图软件,能够高效地完成图片处理工作。在这里推荐三款免费的抠图工具,它们都是非常省力、灵活的一键智能抠图利器,值得收藏! 抠图软件一:千鹿设计助手 第一步,打开“千鹿设计…

安全无忧!Windows7全补丁旗舰版:集成所有补丁!

今日,系统之家小编给大家分享集成所有补丁的Windows7旗舰版系统,集成至2023.12所有官方补丁,修复了系统高危漏洞,让大家时刻都能舒心地展开操作。系统基于微软 Windows 7 2009 SP1 旗舰版进行离线制作,全新升级的优化方…

linux文件查找--locate和find命令详解

在文件系统上查找符合条件的文件 文件查找:1.非实时查找(数据库查找):locate2.实时查找: find应用:生产环境中查找到系统中占用磁盘空间较大且时间比较久的大日志文件,对这个较大的日志文件做处理(删除移走等),防止它占用更多的磁…

如何判断监控设备是否支持语音对讲

目录 一、大华摄像机 二、海康摄像机 三、宇视摄像机 一、大华摄像机 注意:大华摄像机支持跨网语音对讲,即设备和服务器可以不在同一网络内,大华设备的语音通道填写:34020000001370000001 配置接入示例: 音频输入…

vue3重构一款仿饿了没APP实战项目

最近重构了一款比较流行的app项目,采用的是vue3做的h5项目,细节知识点很多,滚动,动画,数据通信,状态缓存等,想要学习交流的小伙伴赶紧行动起来。 图1 图2 图1 图2 图3 图4 图5 图5

若依框架中的mybatis依赖在哪里?

对于刚刚接触若依框架的朋友,可能会比较懵逼,因为他可能在依赖文件中没有找到mybatis的依赖是在什么地方引入的,所以本章教程,就告诉你这个依赖是在什么地方引入的。 在ruoyi-common模块中的pom.xml 存在一个pagehelper-spring-boot-starter <!-- pagehelper 分页插件 -…

docker资源控制与数据卷

docker数据卷 容器和宿主机之间数据共享---------挂载卷------------容器内的目录和宿主机的目录进行挂载。实现数据文件共享。 容器的生命周期有限&#xff0c;一旦重启所有对容器内部文件数据修改以及保存的数据都会被初始化&#xff0c;为了防止数据的丢失&#xff0c;重要…

【大模型系列篇】Transformers综述--邱锡鹏

论文标题&#xff1a;A Survey of Transformers 论文作者&#xff1a;Tianyang Lin, Yuxin Wang, Xiangyang Liu, Xipeng Qiu 论文链接&#xff1a;https://arxiv.org/abs/2106.04554 Transformer 在许多人工智能领域&#xff08;如自然语言处理、计算机视觉和音频处理&#…

力扣热题100_二叉树_230_二叉搜索树中第K小的元素

文章目录 题目链接解题思路解题代码 题目链接 230. 二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a…

深入学习零拷贝

在学习中遇到了一个问题就是什么是零拷贝&#xff0c;因此学习之后以此来记录一下。 零拷贝、直接I/O、异步I/O等&#xff0c;优化的目的就是为了提高系统的吞吐量&#xff0c;减少访问磁盘次数。访问磁盘的速度会比读写内存会慢十倍以上。因此就需要提高它的读写速度。 什么…

视频融合项目中的平台抉择:6大关键要素助力精准选型

随着安防监控系统行业的快速发展&#xff0c;视频融合项目逐渐成为城市治理、企业管理及智能建筑等领域的重要组成部分。视频融合平台作为视频数据整合、管理和分析的核心&#xff0c;其选择直接影响到项目的成功与否。 在当前智慧业务类项目的集成过程中&#xff0c;我们不仅…

【网络协议】网络劫持 - ARP/DNS欺骗篇

前言 网络劫持是一种网络攻击技术&#xff0c;攻击者通过拦截、篡改或重定向数据流量&#xff0c;控制用户的网络通信路径&#xff0c;干扰正常的网络服务。其方式可能包括DNS劫持、ARP欺骗和HTTP劫持等。通过这些手段&#xff0c;攻击者可以窃取敏感信息如个人身份数据和财务信…

【实现100个unity特效之20】用unity实现物品悬浮和发光像素粒子特效

最终效果 文章目录 最终效果新增飞升粒子效果光圈效果修改不同颜色完结 新增飞升粒子效果 效果 光圈效果 效果 修改不同颜色 完结 赠人玫瑰&#xff0c;手有余香&#xff01;如果文章内容对你有所帮助&#xff0c;请不要吝啬你的点赞评论和关注&#xff0c;你的每一次支持…

望获实时Linux与EtherCAT的硬实时解决方案

在追求极致实时性与可靠性的工业自动化领域&#xff0c;望获实时Linux以其卓越的实时性能和广泛的兼容性&#xff0c;正逐步成为工业控制领域的核心力量。结合EtherCAT这一高效通信协议&#xff0c;我们共同打造了一套创新的硬实时工业控制方案&#xff0c;旨在满足现代工业对快…

数学建模——评价决策类算法(层次分析法、Topsis)

一、层次分析法 概念原理 通过相互比较确定各准则对于目标的权重, 及各方案对于每一准则的权重&#xff0c;这些权重在人的思维过程中通常是定性的, 而在层次分析法中则要给出得到权重的定量方法. 将方案层对准则层的权重及准则层对目标层的权重进行综合, 最终确定方案层对目标…

6.mysql事务

MYSQL事务 1.事务简介2.事务操作2.1 方式一2.2 方式二 3.事务四大特性&#xff08;ACID&#xff09;4.并发事务问题5.事务隔离级别 1.事务简介 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有操作作为一个整体一起想系统提交或撤销操作…