【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】
Harbor v2.13.0 详细安装步骤(启用 HTTPS)
1. 环境准备
-
系统要求:至少 4GB 内存,100GB 磁盘空间。
-
已安装组件:
- Docker(版本 ≥ 20.10)
- Docker Compose(版本 ≥ v2.0)
-
域名映射:
echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
2. 下载并解压 Harbor 离线安装包
github下载地址: Release v2.13.0
# 解压到指定目录(如 /opt/harbor)
sudo tar -xzvf harbor-offline-installer-v2.13.0_6.tgz -C /opt
cd /opt/harbor
3. 生成 SSL 证书(自签名)
步骤 1:创建证书目录
sudo mkdir -p /opt/harbor/certs
cd /opt/harbor/certs
步骤 2:生成 CA 根证书
# 生成 CA 私钥
openssl genrsa -out ca.key 4096# 生成 CA 证书(有效期 10 年)
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key ca.key \-out ca.crt
步骤 3:生成服务器证书
# 生成服务器私钥
openssl genrsa -out harbor.host3.key 4096# 生成证书签名请求(CSR)
openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key harbor.host3.key \-out harbor.host3.csr# 生成证书扩展文件(v3.ext)
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names[alt_names]
DNS.1=harbor.host3
EOF# 使用 CA 签发服务器证书
openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in harbor.host3.csr \-out harbor.host3.crt
步骤 4:配置证书权限
sudo chmod 644 /opt/harbor/certs/*
4. 配置 Harbor
编辑 harbor.yml
sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml
# 关键配置项:
hostname: harbor.host3 # 域名
http:#port: 80 # 禁用 HTTP(设为空或注释)
https:port: 443certificate: /opt/harbor/certs/harbor.host3.crtprivate_key: /opt/harbor/certs/harbor.host3.keyharbor_admin_password: Harbor12345 # 管理员密码
database:password: root123 # 数据库密码
data_volume: /data/harbor # 数据存储路径
5. 安装 Harbor
注意检查端口是否占用
# 查看 80 端口占用情况
sudo lsof -i :443
# 或使用 netstat 命令
netstat -tuln | grep 443
# 运行安装脚本(自动启动服务)
sudo ./install.sh --with-trivy
6. 验证安装
检查服务状态
docker compose ps
# 预期输出所有服务状态为 "running"
访问 Harbor Web 界面
- 浏览器访问:
https://harbor.host3
- 用户名:
admin
- 密码:
Harbor12345
解决浏览器证书警告
# 将 CA 证书导入系统信任库(以 Ubuntu 为例)
sudo cp /opt/harbor/certs/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
7. 防火墙配置(如需)
# 开放 443 端口
sudo ufw allow 443/tcp
sudo ufw reload
常见问题解决
1. 常见问题
-
** 证书不信任错误**
-
现象:
x509: certificate signed by unknown authority
-
解决:确保客户端已正确导入 Harbor 的
ca.crt
。 -
#Windows 系统 1.从 Harbor 服务器获取 /opt/harbor/certs/ca.crt 文件,发送到 Windows 客户端 2.打开证书管理器 win+R certmgr.msc 3.导航至 受信任的根证书颁发机构 → 证书,右键选择 所有任务 → 导入,选择 ca.crt 文件完成导入 #Ubuntu/Debian# 1复制证书到系统目录sudo cp ca.crt /usr/local/share/ca-certificates/harbor-ca.crt # 2更新证书库sudo update-ca-certificates # 3重启 Docker(若需通过 Docker 访问 Harbor)sudo systemctl restart docker #CentOS/RedHat# 1复制证书到系统目录sudo cp ca.crt /etc/pki/ca-trust/source/anchors/ # 2更新证书库sudo update-ca-trust # 3重启 Dockersudo systemctl restart docker #macOS 系统导入 CA 证书 #1钥匙串访问工具#双击 ca.crt 文件,选择 系统 钥匙串,点击 添加。#右键证书 → 显示简介 → 信任,设置为 始终信任。 #2终端验证# 检查证书是否生效openssl s_client -connect harbor.host3:443 -showcerts
-
-
DNS 解析失败
-
现象:
Could not resolve host: harbor.host3
-
解决:检查客户端主机的
/etc/hosts
或 DNS 服务器配置。 -
echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
-
-
IP 访问证书警告
-
现象:访问
https://192.168.0.223
提示证书无效。 -
解决:证书必须包含 IP SAN(即
alt_names
中添加IP.1 = 192.168.0.223
)。 -
现象:浏览器提示 “不安全连接”。
-
解决:将
ca.crt
导入浏览器或系统信任库。
-
2. Harbor 服务未启动
-
检查日志:
tail -f /var/log/harbor/*.log
-
重新部署:
docker compose down -v sudo ./install.sh
3. Docker 客户端信任自签名证书
# 在 Docker 客户端机器操作
sudo mkdir -p /etc/docker/certs.d/harbor.host3
sudo scp root@harbor.host3:/opt/harbor/certs/ca.crt /etc/docker/certs.d/harbor.host3/
sudo systemctl restart docker
# 在 Harbor 服务器检查防火墙规则
sudo ufw allow 443/tcp
sudo ufw reload
4.Docker 客户端推送镜像
# 登录 Harbor
docker login harbor.host3 -u admin -p Harbor12345# 推送测试镜像
docker pull nginx:latest
docker tag nginx:latest harbor.host3/library/nginx:latest
docker push harbor.host3/library/nginx:latest
Harbor 核心功能与使用指南
一、Harbor 与传统 Docker Registry 的核心优势
- 企业级功能支持
- 基于角色的访问控制(RBAC):支持项目级别的权限管理(如管理员、开发者、访客角色),可精细控制用户对镜像的读写权限。
- 镜像复制与同步:支持跨 Harbor 实例的镜像自动同步,适用于混合云或多数据中心场景。
- 漏洞扫描与安全审计:集成 Trivy 等工具自动扫描镜像漏洞,并记录所有操作日志用于审计。
- LDAP/AD 集成:可直接对接企业已有的 LDAP/AD 系统,统一用户认证。
- 易用性与扩展性
- 图形化界面(Web UI):提供直观的镜像管理、项目配置和用户权限设置界面。
- RESTful API:支持自动化集成到 CI/CD 流程中,例如通过 API 创建项目或管理镜像。
- 多存储后端支持:支持本地存储、S3、Ceph 等存储方案,适应不同规模的部署需求。
- 与 Kubernetes 生态的深度集成
Harbor 可无缝对接 Kubernetes,作为私有镜像仓库,支持 Helm Chart 存储(需启用 ChartMuseum)。
二、Harbor 的核心使用场景
- 企业内部镜像管理
- 统一存储企业内部开发的 Docker 镜像,避免依赖公共仓库。
- 通过项目隔离不同团队的镜像资源,例如
project-frontend
和project-backend
。
- 混合云镜像分发
- 在多个 Harbor 实例间配置镜像复制策略,实现跨云或跨地域的镜像同步。
- 安全合规与审计
- 扫描生产环境镜像的漏洞,记录操作日志以满足合规要求。
三、Harbor 镜像推送与拉取操作
1. 推送镜像到 Harbor
-
步骤 1:登录 Harbor
docker login harbor.host3 -u admin -p Harbor12345
注意:若使用自签名证书,需将 CA 证书放入
/etc/docker/certs.d/harbor.host3
。 -
步骤 2:打标签
镜像名称需包含 Harbor 地址和项目名称:docker tag nginx:latest harbor.host3/myproject/nginx:v1
-
步骤 3:推送镜像
docker push harbor.host3/myproject/nginx:v1
2. 从 Harbor 拉取镜像
docker pull harbor.host3/myproject/nginx:v1
3. 镜像管理
-
Web UI 操作:通过浏览器访问
https://harbor.host3
,可在项目中查看、删除镜像或配置复制策略。 -
API 操作:使用 RESTful API 自动化管理,例如列出所有镜像:
curl -X GET "https://harbor.host3/api/v2.0/projects/myproject/repositories" -H "Authorization: Bearer <TOKEN>"
四、Harbor 与其他工具对比
工具 | 优势 | 局限性 |
---|---|---|
Docker Hub | 公共镜像丰富,适合个人开发者 | 缺乏企业级功能,安全性低 |
Nexus 3 | 支持多种仓库类型(Maven、Docker) | Docker 管理功能较 Harbor 弱 |
Harbor | 企业级安全、镜像复制、漏洞扫描 | 部署复杂度较高 |
五、Harbor 维护与管理
- 日志与监控
- 日志收集:Harbor 日志默认存储在
/var/log/harbor
,可通过 ELK 或 Prometheus 集成实现集中监控。 - 服务状态检查:使用
docker-compose ps
查看容器运行状态。
- 日志收集:Harbor 日志默认存储在
- 备份与恢复
- 数据备份:定期备份 Harbor 数据库 (
harbor-db
) 和存储卷 (/data/harbor
)。 - 配置文件备份:保存
harbor.yml
和证书文件,便于快速恢复。
- 数据备份:定期备份 Harbor 数据库 (
- 升级与扩展
- 版本升级:下载新版本安装包,运行
./prepare
和./install.sh
,注意迁移旧数据。 - 高可用部署:通过 Redis 集群和 Ceph 存储实现 Harbor 组件的高可用。
- 版本升级:下载新版本安装包,运行
- 安全维护
- 定期更新证书:自签名证书需每年更新,避免服务中断。
- 漏洞扫描策略:配置定时扫描任务,拦截高风险镜像。
六、常见问题解决
- 拉取镜像超时
- 检查网络:确保防火墙开放 443 端口(HTTPS)或 80 端口(HTTP)。
- Web UI 无法访问
- 服务状态:运行
docker-compose logs
查看 Nginx 或 Core 服务日志。
- 服务状态:运行
七、总结
Harbor 是企业级容器镜像管理的首选工具,其核心价值在于 安全性、可扩展性 和 易用性。通过合理配置镜像推送、权限管理和存储后端,可大幅提升 DevOps 流程的效率。维护时需重点关注日志监控、备份策略和高可用部署,确保服务稳定
相关文章:
【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】
Harbor v2.13.0 详细安装步骤(启用 HTTPS) 1. 环境准备 系统要求:至少 4GB 内存,100GB 磁盘空间。 已安装组件: Docker(版本 ≥ 20.10)Docker Compose(版本 ≥ v2.0) 域…...
码蹄集——直角坐标到极坐标的转换、射线、线段
目录 MT1052 直角坐标到极坐标的转换 MT1066 射线 MT1067 线段 MT1052 直角坐标到极坐标的转换 思路: arctan()在c中是atan(),结果是弧度要转换为度,即乘与180/PI 拓展:cos()、sin()在c代码中表示方式不变 #include<bits/…...
accept() reject() hide()
1. accept() 用途 确认操作:表示用户完成了对话框的交互并确认了操作(如点击“确定”按钮)。 关闭模态对话框:结束 exec() 的事件循环,返回 QDialog::Accepted 结果码。适用场景 模态对话框(通过 exec()…...
天文探秘学习小结
宇宙 宇宙大爆炸 时间 130亿年前 10-30次方秒内发生大爆炸 发现 20世纪80年代 哈勃发现 通过基于其他星系相对地球的移动速度得出的结论 哈勃发现离地球越远的星系 离开地球的速度越快 得出宇宙加速膨胀的结论 测量造父变星到地球的距离 哈勃测量的是一种恒星 叫造父变星 造…...
游戏引擎学习第261天:切换到静态帧数组
game_debug.cpp: 将ProfileGraph的尺寸初始化为相对较大的值 今天的讨论主要围绕性能分析器(Profiler)以及如何改进它的可用性展开。当前性能分析器已经能够正常工作,但我们希望通过一些改进,使其更易于使用,特别是在…...
利用 Kali Linux 进行信息收集和枚举
重要提示: 在对任何系统进行信息收集和枚举之前,务必获得明确的授权。未经授权的扫描和探测行为是非法的,并可能导致严重的法律后果。本教程仅用于教育和授权测试目的。 Kali Linux 官方链接: 官方网站: https://www…...
深入解析代理服务器:原理、应用与实战配置指南
一、代理服务器的核心原理与工作机制 1.1 网络通信的中介架构 代理服务器(Proxy Server)本质上是位于客户端与目标服务器之间的中间层节点,其核心工作机制遵循OSI模型的会话层与应用层协议。当客户端发起网络请求时&#x…...
[蓝桥杯 2025 省 B] 水质检测(暴力 )
暴力暴力 菜鸟第一次写题解,多多包涵!!! 这个题目的数据量很小,所以没必要去使用bfs,直接分情况讨论即可 一共两排数据,我们使用贪心的思想,只需要实现从左往右的过程中每个检测器相互连接即…...
区块链+数据库:技术融合下的应用革新与挑战突围
引言 近年来,区块链技术凭借其去中心化、不可篡改、透明可追溯等特性,逐渐从数字货币领域扩展到更广泛的应用场景,包括供应链管理、医疗健康、政务服务和数字身份等。与此同时,传统数据库系统在应对海量数据、多方协作与安全需求…...
油气地震资料信号处理中的NMO(正常时差校正)
油气地震资料信号处理中的NMO(正常时差校正)介绍与应用 NMO基本概念 **正常时差校正(Normal Moveout Correction,NMO)**是地震资料处理中的一项关键技术,主要用于消除由于炮检距(source-recei…...
TDengine 车联网案例
简介 随着科技的迅猛发展和智能设备的广泛普及,车联网技术已逐渐成为现代交通领域的核心要素。在这样的背景下,选择一个合适的车联网时序数据库显得尤为关键。车联网时序数据库不仅仅是数据存储的解决方案,更是一个集车辆信息交互、深度分析…...
探索编程世界:从“爱编程的小黄鸭”B站账号启航
探索编程世界:从“爱编程的小黄鸭”B站账号启航 在编程学习的漫漫长路上,你是否常常为寻找优质、易懂的学习资源而烦恼?今天,我想给大家分享一个宝藏B站账号——“爱编程的小黄鸭”,希望能为大家的编程学习之旅提供一…...
使用 git subtree 方法将六个项目合并到一个仓库并保留提交记录
使用 git subtree 方法将六个项目合并到一个仓库并保留提交记录 步骤 1:初始化主仓库步骤 2:逐个添加子项目2.1 添加子项目远程仓库2.2 将子项目合并到主仓库的指定目录2.3 重复操作其他子项目 步骤 3:验证提交历史步骤 4(可选&am…...
Django缓存框架API
这里写自定义目录标题 访问缓存django.core.cache.cachesdjango.core.cache.cache 基本用法cache.set(key, value, timeoutDEFAULT_TIMEOUT, versionNone)cache.get(key, defaultNone, versionNone)cache.add(key, value, timeoutDEFAULT_TIMEOUT, versionNone)cache.get_or_se…...
Linux云计算训练营笔记day02(Linux、计算机网络、进制)
Linux 是一个操作系统 Linux版本 RedHat Rocky Linux CentOS7 Linux Ubuntu Linux Debian Linux Deepin Linux 登录用户 管理员 root a 普通用户 nsd a 打开终端 放大: ctrl shift 缩小: ctrl - 命令行提示符 [rootlocalhost ~]# ~ 家目录 /root 当前登录的用户…...
LIO-Livox
用单台Livox Horizon (含内置IMU) 实现高鲁棒性的激光-惯性里程计,可在各类极端场景下鲁棒运行,并达到高精度的定位和建图效果。(城区拥堵、高速公路、幽暗隧道) 注:该系统主要面向大型室外环境中的汽车平台设计。用户可以使用 Livox Horizo…...
VNP46A3灯光遥感数据全球拼接并重采样
感谢Deepseek帮我写代码,本人在此过程中仅对其进行调试和部分修改: 灯光遥感2024年1月全球拼接结果 代码如下: import os import glob import h5py import numpy as np from osgeo import gdal, osr import rasterio from rasterio.merge im…...
CEF格式说明
又是一年护网季,现在甲方hw已经主流采用SIEM平台了,IPS、IDS、WAF、FW、EDR等安全数据经过安全态势感知这个二道贩子展现在蓝队面前,勉强能用,今天来说一下SIEM中常见的CEF格式,Common Event Format,公共事…...
【Trea】Trea国际版|海外版下载
Trea目前有两个版本,海外版和国内版。 Trae 版本差异 大模型选择: 国内版:提供了字节自己的Doubao-1.5-pro以及DeepSeek的V3版本和R1版本。海外版:提供了ChartGPT以及Claude-3.5-Sonnet和3.7-Sonnt. 功能和界面&a…...
如何管理两个Git账户
背景 在开发过程中,我们有时需要同时使用 多个 Git 账户(如个人 GitHub 账户和公司 GitLab 账户)。但由于 Git 默认使用全局配置,可能会导致提交信息混乱、权限冲突等问题。本文将介绍如何在同一台机器上 安全、高效地管理多个 G…...
概统期末复习--速成
随机事件及其概率 加法公式 推三个的时候ABC,夹逼准则 减法准则 除法公式 相互独立定义 两种分析 两个解法 古典概型求概率(排列组合) 分步相乘、分类相加 全概率公式和贝叶斯公式 两阶段问题 第一个小概率*A在小概率的概率。。。累计 …...
Linux系统之shell脚本基础:条件测试、正整数字符串比较与if、case语句
目录 一.条件测试 1.三种测试方法 2.正整数值比较 3.字符串比较 4.逻辑测试 二.脚本中常用命令 1.echo命令 2.date命令 3.cal命令 4.tr命令 5.cut命令 6.sort命令 7.uniq命令 8.cat多行重定向 三.if语句 1.使用格式 2.if语句实例 四.case格式 1.使用格式 2…...
15.Spring Security对Actuator进行访问控制
15.Spring Security对Actuator进行访问控制 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…...
Eigen矩阵的平移,旋转,缩放
#include <Eigen/Core> #include <Eigen/Dense>平移 x轴 // 原始点或对象的坐标Eigen::Vector3d original_point(1.0, 2.0, 3.0);std::cout << "original_point: " << std::endl << original_point << std::endl;// x 轴上的平…...
基站综合测试仪核心功能详解:从射频参数到5G协议测试实战指南
基站综合测试仪是通信网络建设和维护中的关键工具,主要用于对基站设备进行全面的性能验证和故障诊断,确保其符合行业标准并稳定运行。其主要作用包括: 1. 基站发射机性能测试 射频参数测量:检测发射功率、频率精度、调制质量&…...
Android setContentView()源码分析
文章目录 Android setContentView()源码分析前提setContentView() 源码分析总结 Android setContentView()源码分析 前提 Activity 的生命周期与 ActivityThread 相关,调用 startActivity() 时,会调用 ActivityThread#performLaunchActivity()…...
BERT 微调
BERT微调 微调 BERT BERT 对每一个词元( token )返回抽取了上下文信息的特征向量 不同的任务使用不同的特征 句子分类 将 < cls > 对应的向量输入到全连接层分类 命名实体识别 识别一个词元是不是命名实体,例如人名、机构、位置…...
K8S使用--dry-run输出资源模版和兼容性测试
1、生成资源模版 使用 --dry-run 创建资源: kubectl create deploy web-ng --imagenginx:1.28 --replicas2 --dry-runclient -o yaml # 查询是否存在 web-ng的资源 kubectl get deployment -A |grep web-ng 通过以上命令可以看到,web-ng的deployment并没…...
01硬件原理图
一、硬件设计关键信息 原理图概要: 1. 核心板:上电时序控制,DDR3,Flash。 2. 底板:以太网,USB,IO,AD9361,射频链路等。 设计Xlinx的原理图和PCB设计需要的文档: 1、…...
算法 | 长颖燕麦优化算法AOO,算法原理,公式,深度解析+性能实测(Python代码)
以下是对长颖燕麦优化算法(AOO)的深度解析,结合其灵感来源、算法原理、公式推导及性能实测分析: 一、算法原理与行为建模 长颖燕麦优化算法(AOO)基于燕麦种子的三种自然行为设计优化策略,模拟其适应环境的动态过程: 种子传播(全局探索阶段) 行为模拟:种子通过风、水…...
5.1经典架构
一、大模型架构 了解常见的大模型架构,如 GPT 系列、LLaMA 系列、GLM 系列、Qwen 系列、DeepSpeek 系列等。对比他们之间的差异,以及每个模型演变过程 模型主要机构技术路线特点中文适配情况GPT 系列OpenAIDecoder-only对话能力强、商业化领先英文为主&a…...
BBS (cute): 1.0.2靶场渗透
BBS (cute): 1.0.2 来自 <BBS (cute): 1.0.2 ~ VulnHub> 前言:攻击机无法扫描靶机解决方案 1,在开机时,按下shift进入界面,按e进入该界面 2,ro替换为 rw signie init/bin/bash 3,按Ctrl键X键如果没成…...
Redis面试 实战贴 后面持续更新链接
面试问题列表: Redis支持哪些数据类型?各适用于什么场景? Redis为什么采用单线程模型?优势与瓶颈是什么? RDB和AOF持久化的区别?如何选择?混合持久化如何实现? Redis缓存穿透、雪…...
搭建spark yarn 模式的集群
搭建Spark YARN模式集群步骤 1. 环境准备 系统:采用Linux系统(如Ubuntu、CentOS ),借助ntp实现节点间时间同步,关闭防火墙及SELinux。 Java:安装JDK 8及以上版本,配置JAVA_HOME环境变量。 H…...
静态库和动态库的区别
简而言之:静态库是.o文件,是直接编译到进程里面的,其他的进程不能使用,动态库是.so文件,是放到linux的文件系统里面的,在程序运行的时候去拿来调用,所以多个进程都能访问 # Linux中的静态库与动…...
Relay算子注册
TVM 卷积算子注册代码深度解析 源码位置:src/relay/op/nn/convolution.cc 作用:conv2d等算子的注册实现 TVM_REGISTER_NODE_TYPE(Conv2DAttrs);TVM_REGISTER_GLOBAL("relay.op.nn._make.conv2d").set_body_typed([](Expr data, Expr weight,…...
俄罗斯电商市场:增长与变革中的新势力崛起
近年来,全球跨境电商市场格局正经历深刻变革,东南亚、非洲、拉美和中东等新兴市场凭借人口红利和互联网渗透率提升,成为国际电商企业竞相争夺的蓝海。然而,在这场全球化的电商浪潮中,俄罗斯市场正以惊人的增速和独特的…...
HHsuite3 的 HHblits 和 HHsearch比较
HHblits 与 HHsearch 的核心区别及远源同源检测能力对比 一、核心功能与定位差异 特征HHblitsHHsearch核心目标快速迭代搜索,构建高质量多序列比对(MSA)和 Profile HMM,用于大规模序列聚类与初步同源筛选。高精度 Profile HMM-HMM 比对,用于深度同源检测与结构 / 功能预测…...
C++(1)
一、从 C 到 C 1、引用(掌握) 1.1 概念 别名机制:引用本质上是对变量的一种别名,它就像变量的另一个名字,对引用的操作实际上就是对原变量的操作。从底层实现来看,引用可能是通过指针来实现的࿰…...
Android组件化 -> Debug模式下,本地构建module模块的AAR和APK
本地构建module模块的AAR gradle.properties isCommonApp false模块的build.gradle apply plugin: com.android.library:module模块编译manifest.srcFile src/main/AndroidManifest.xml:读取没有启动App和Activity的配置文件 if (isCommonApp.toBoo…...
“wsl --install -d Ubuntu-22.04”下载慢,中国地区离线安装 Ubuntu 22.04 WSL方法(亲测2025年5月6日)
从中国地区通过 wsl --install 或 Microsoft Store 安装 WSL 发行版(如 Ubuntu)时,下载速度往往非常慢,甚至卡在 0% 很久。这是因为微软服务器在国内访问速度受限。 以下是几种 解决方法,可加快 WSL 发行版࿰…...
CAN报文中的标准帧和扩展帧
目录 1. 标准帧(Standard Frame) 2. 扩展帧(Extended Frame) 3. 核心区别 4. 如何区分标准帧与扩展帧? 5. 应用场景 6. 注意事项 在CAN(Controller Area Network)总线协议中,标…...
使用AI应用开发平台搭建夸奖机器人,玩转AI【COZE入门案例-第1课】
Coze Coze是字节跳动旗下的产品,更注重用户友好性和C端场景优化。其主要特点包括: 快速部署:Coze提供拖拽式界面和丰富的插件(如天气查询、电商导流工具),适合快速搭建对话机器人和轻量化应用。生态集成:Coze依托字节生态,支持与飞书、抖音等平台的无缝集成…...
二叉树—中序遍历—非递归
初始状态 假设当前从根节点 b 开始,此时栈为空 。 第一步:处理根节点 b 的左子树 调用 goAlongLeftBranch 函数,从节点 b 开始,因为 b 有左子树(节点 a ),将 b 入栈,此时栈&#…...
空间内任意点到直线和平面的距离推导
前言 点到直线,点到面的距离公式的手工推导。很久没有数学推导了,再试一把。 一、初步推导 二、转换为标准的形式 三、两种特殊情况的验证 四、推广到3维的情况 结束语 可能从向量的角度来推导,更加的便捷。很多数学知识都忘记了,…...
代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串
代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串 151.翻转字符串里的单词 思路 我的想法是模拟,用状态机拾取单词,然后存到双重数组中,再反向读取输出状态机有…...
Unity学习笔记二
文章目录 3D数学公共计算结构体Mathf常用成员三角函数 向量Vector3基本成员点乘叉乘插值运算 四元数引出基本概念Quaternion结构体成员四元数运算 更多的Mono延迟函数协同程序多线程相关协程概念辨析协程本体协程调度器 Resources资源动态加载特殊文件夹Resources同步加载Resou…...
tp8+swoole搭建
1、根据官方文档下载tp8.1.2. php>8,tp8的运行界面已经不是初心不改了。而是值得托付。 composer create-project topthink/think tp8swoole cd tp8swoole composer require topthink/think-swoole 2、下载thinkswoole captcha,image,migration,queue,不要要template和v…...
Android Retrofit框架分析(三):自动切换回主线程;bulid的过程;create方法+ServiceMethod源码了解
目录 Okhttp有什么不好?bulid的过程create方法ServiceMethodcall enqueue的过程为什么要学习源码呢? 一、Okhttp有什么不好? Okhttp本身来说,是一个挺好的网络框架,但,对于开发者而言,使用起…...
FPGA----基于ZYNQ 7020实现petalinux文件持久化存储
引言:由于当前的 PetaLinux 系统使用了临时的内存文件系统(initramfs),导致每次重启后所有更改(包括安装的 EPICS)都会丢失。为了解决这个问题,您需要将根文件系统(rootfs࿰…...