Docker私有仓库Harbor
简介
Docker私有仓库Harbor是一个开源的、企业级的Docker registry解决方案,它提供了安全、可靠和高效的容器镜像存储和分发服务。以下是关于Docker私有仓库Harbor的详细介绍:
一、Harbor的特点
-
基于角色的访问控制(RBAC):Harbor支持基于角色的权限控制,可以为用户和团队分配不同的权限,确保容器镜像的安全访问。
-
镜像复制:Harbor支持跨多个Harbor实例之间的镜像复制,可以实现高可用性和负载均衡,确保容器镜像的可靠分发。
-
LDAP/AD支持:Harbor可以与现有的LDAP/AD系统集成,实现用户认证和权限管理,方便企业内部用户的使用。
-
镜像删除和垃圾回收:Harbor支持镜像的删除和垃圾回收,可以释放存储空间,避免资源的浪费。
-
图形化用户界面:Harbor提供了直观、易用的图形化用户界面,方便用户浏览、搜索和管理容器镜像。
-
审计管理:Harbor支持审计管理功能,可以记录所有针对容器镜像的操作,确保操作的合规性和可追溯性。
-
RESTful API支持:Harbor提供了RESTful API接口,方便管理员和其他系统对Harbor进行集成和管理。
二、Harbor的架构
Harbor的架构主要由以下几个组件组成:
-
Proxy:反向代理组件,负责将来自浏览器、Docker客户端等的请求转发到后端服务上。
-
Registry:Docker registry服务,负责存储和分发容器镜像。
-
UI:图形化用户界面,提供浏览、搜索和管理容器镜像的功能。
-
Token Service:负责生成和管理访问令牌,用于验证客户端的访问权限。
-
Database:数据库组件,用于存储用户、项目、镜像等元数据。
-
Job Service:后台任务处理组件,负责执行镜像复制、垃圾回收等任务。
三、Harbor的部署和管理
Harbor的部署和管理相对简单,可以通过Docker Compose进行快速部署。在部署之前,需要准备好相应的环境,包括Docker环境、数据库等。部署完成后,可以通过图形化用户界面进行容器镜像的管理和操作。Harbor还提供了丰富的配置选项和API接口,方便管理员进行定制化和集成。
总之,Docker私有仓库Harbor是一个功能强大、易于部署和管理的企业级Docker registry解决方案,适用于各种规模和类型的企业和组织。
环境
redhat 9.2 192.168.200.133
Harbor版本:2.9.4
步骤
安装docker
[root@dokcer ~]# yum -y install yum-utils.noarch
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 2.7 MB/s | 2.7 kB 00:00
依赖关系解决。
=======================================================================================================软件包 架构 版本 仓库 大小
=======================================================================================================
安装:yum-utils noarch 4.3.0-5.el9_2 BaseOS 45 k
省略 。 。 。 。 。 。 。 。 。
[root@dokcer ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@dokcer ~]# yum clean all && yum makecache
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。13 个文件已删除
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。Docker CE Stable - x86_64 62 kB/s | 46 kB 00:00
AppStream 164 MB/s | 6.3 MB 00:00
BaseOS 109 MB/s | 1.7 MB 00:00
元数据缓存已建立。
[root@dokcer ~]#
[root@dokcer ~]# yum -y install docker-ce*
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:0:00:51 前,执行于 2024年05月11日 星期六 16时26分54秒。
依赖关系解决。
=======================================================================================================软件包 架构 版本 仓库 大小
=======================================================================================================
安装:docker-ce x86_64 3:26.1.2-1.el9 docker-ce-stable 27 Mdocker-ce-cli x86_64 1:26.1.2-1.el9 docker-ce-stable 7.8 Mdocker-ce-rootless-extras x86_64 26.1.2-1.el9 docker-ce-stable 4.0 M
安装依赖关系:containerd.io x86_64 1.6.31-3.1.el9 docker-ce-stable 34 M
安装弱的依赖:docker-buildx-plugin x86_64 0.14.0-1.el9 docker-ce-stable 13 Mdocker-compose-plugin x86_64 2.27.0-1.el9 docker-ce-stable 13 M事务概要
=========================================================================================省略 。 。 。 。 。 。
镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装compose
[root@dokcer ~]# yum update && yum install docker-compose-plugin
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:0:08:25 前,执行于 2024年05月11日 星期六 16时26分54秒。
依赖关系解决。
无需任何处理。
完毕!
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:0:08:25 前,执行于 2024年05月11日 星期六 16时26分54秒。
软件包 docker-compose-plugin-2.27.0-1.el9.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@dokcer ~]# docker compose version
Docker Compose version v2.27.0
下载harbor的安装包
在GitHub上下载harbor的安装包,此包由harbor官网提供:Releases · goharbor/harbor (github.com)
在浏览器直接下载,之后导入到虚拟机里面,因为虚拟机里下载太慢了
装一个传输工具
[root@dokcer ~]# yum -y install lrzsz.x86_64
传输完成后查看,并将其解压
[root@dokcer ~]# ls
公共 视频 文档 音乐 anaconda-ks.cfg
模板 图片 下载 桌面 harbor-offline-installer-v2.9.4.tgz
[root@dokcer ~]#
[root@dokcer ~]# tar -xvf harbor-offline-installer-v2.9.4.tgz -C /usr/local/
harbor/harbor.v2.9.4.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@dokcer ~]#
用OpenSSL生成一份SSL证书
[root@dokcer ~]# yum -y install mod_ssl.x86_64 openssl
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:0:49:04 前,执行于 2024年05月11日 星期六 18时26分11秒。
软件包 openssl-1:3.0.7-6.el9_2.x86_64 已安装。
依赖关系解决。#生成一个自签名证书,创建一个存放目录 /private
[root@dokcer ~]# mkdir private
[root@dokcer ~]# openssl genrsa -out ./private/ca.key 2048#生成证书签名请求CSR
[root@dokcer ~]# openssl req -new -key ./private/ca.key -out ./private/ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:#生成X509自签名证书
[root@dokcer ~]# openssl req -new -x509 -key ./private/ca.key -out ./private/ca.crt -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@dokcer ~]#
配置harbor参数文件
[root@dokcer ~]# cd /usr/local/harbor/
[root@dokcer harbor]# vim harbor.yml.tmpl 1 # Configuration file of Harbor2 3 # The IP address or hostname to access admin UI and registry service.4 # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.5 hostname: 192.168.200.133 //此行改成自己的ip地址6 7 # http related config8 http:9 # port for http, default is 80. If https enabled, this port will redirect to https port10 port: 8011 12 # https related config13 https:14 # https port for harbor, default is 44315 port: 44316 # The path of cert and key files for nginx17 certificate: /root/private/ca.crt //替换为 SSL 证书文件的路径 18 private_key: /root/private/ca.key //替换为 SSL 私钥文件的路径
启动harbor服务
/usr/local/harbor/install.sh
复制一份harbor.yml.tml文件改名为harbor.yml因为启动需要用到
[root@dokcer harbor]# cp harbor.yml.tmpl harbor.yml
[root@dokcer harbor]# bash /usr/local/harbor/install.sh[Step 0]: checking if docker is installed ...Note: docker version: 26.1.2[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.27.0[Step 2]: loading Harbor images ...
Loaded image: goharbor/nginx-photon:v2.9.4
Loaded image: goharbor/trivy-adapter-photon:v2.9.4
Loaded image: goharbor/harbor-portal:v2.9.4
Loaded image: goharbor/harbor-core:v2.9.4
Loaded image: goharbor/harbor-log:v2.9.4
Loaded image: goharbor/harbor-jobservice:v2.9.4
Loaded image: goharbor/harbor-exporter:v2.9.4
Loaded image: goharbor/prepare:v2.9.4
Loaded image: goharbor/harbor-db:v2.9.4
Loaded image: goharbor/harbor-registryctl:v2.9.4
Loaded image: goharbor/redis-photon:v2.9.4
Loaded image: goharbor/registry-photon:v2.9.4[Step 3]: preparing environment ...[Step 4]: preparing harbor configs ...
prepare base dir is set to /usr/local/harbor
Generated configuration file: /config/portal/nginx.conf
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 dirNote: stopping existing Harbor instance ...
WARN[0000] /usr/local/harbor/docker-compose.yml: `version` is obsolete [Step 5]: starting Harbor ...
WARN[0000] /usr/local/harbor/docker-compose.yml: `version` is obsolete
[+] Running 10/10✔ Network harbor_harbor Created 0.4s ✔ Container harbor-log Started 0.8s ✔ Container harbor-portal Started 2.7s ✔ Container harbor-db Started 3.2s ✔ Container registryctl Started 3.1s ✔ Container redis Started 3.1s ✔ Container registry Started 2.7s ✔ Container harbor-core Started 3.7s ✔ Container harbor-jobservice Started 4.9s ✔ Container nginx Started 5.5s
✔ ----Harbor has been installed and started successfully.----
[root@dokcer harbor]#
查看harbor启动镜像
[root@dokcer harbor]# docker compose ps
WARN[0000] /usr/local/harbor/docker-compose.yml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
harbor-core goharbor/harbor-core:v2.9.4 "/harbor/entrypoint.…" core About a minute ago Up About a minute (healthy)
harbor-db goharbor/harbor-db:v2.9.4 "/docker-entrypoint.…" postgresql About a minute ago Up About a minute (healthy)
harbor-jobservice goharbor/harbor-jobservice:v2.9.4 "/harbor/entrypoint.…" jobservice About a minute ago Up 58 seconds (healthy)
harbor-log goharbor/harbor-log:v2.9.4 "/bin/sh -c /usr/loc…" log About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal goharbor/harbor-portal:v2.9.4 "nginx -g 'daemon of…" portal About a minute ago Up About a minute (healthy)
nginx goharbor/nginx-photon:v2.9.4 "nginx -g 'daemon of…" proxy About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp
redis goharbor/redis-photon:v2.9.4 "redis-server /etc/r…" redis About a minute ago Up About a minute (healthy)
registry goharbor/registry-photon:v2.9.4 "/home/harbor/entryp…" registry About a minute ago Up About a minute (healthy)
registryctl goharbor/harbor-registryctl:v2.9.4 "/home/harbor/start.…" registryctl About a minute ago Up About a minute (healthy)
[root@dokcer harbor]#
浏览器访问
默认的管理员用户名和密码分别为admin和Harbor12345
创建一个新项目,登录成功后创建一个新的项目
创建好之后出现了一个新的项目
此时可以使用docker 命令在本地通过127.0.0.1 来登录和推送镜像。默认register服务器端口80侦听。
[root@dokcer ~]# docker login -u admin -p Harbor12345 http://127.0.0.1
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[root@dokcer ~]#
下载镜像进行测试
[root@dokcer ~]# docker pull cirros
Using default tag: latest
latest: Pulling from library/cirros
d0b405be7a32: Pull complete
bd054094a037: Pull complete
c6a00de1ec8a: Pull complete
Digest: sha256:1e695eb2772a2b511ccab70091962d1efb9501fdca804eb1d52d21c0933e7f47
Status: Downloaded newer image for cirros:latest
docker.io/library/cirros:latest
[root@dokcer ~]#
[root@dokcer ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/harbor-exporter v2.9.4 2d73f8aa1dae 3 weeks ago 106MB
goharbor/redis-photon v2.9.4 cdc8364c58be 3 weeks ago 165MB
goharbor/trivy-adapter-photon v2.9.4 c2450773e2e6 3 weeks ago 504MB
goharbor/harbor-registryctl v2.9.4 309a9ce74755 3 weeks ago 149MB
goharbor/registry-photon v2.9.4 fd9a212aba2d 3 weeks ago 83.5MB
goharbor/nginx-photon v2.9.4 7d707a6be242 3 weeks ago 153MB
goharbor/harbor-log v2.9.4 43c3b30c4d6b 3 weeks ago 163MB
goharbor/harbor-jobservice v2.9.4 32cace7c28c0 3 weeks ago 140MB
goharbor/harbor-core v2.9.4 c69d87c3277b 3 weeks ago 168MB
goharbor/harbor-portal v2.9.4 ccec0edebddc 3 weeks ago 161MB
goharbor/harbor-db v2.9.4 ef215f05a8a0 3 weeks ago 269MB
goharbor/prepare v2.9.4 e958fd04a56e 3 weeks ago 206MB
cirros latest f9cae1daf5f6 3 years ago 12.6MB
[root@dokcer ~]#
将镜像打上标签为V1,并查看是否成功
随后上传镜像到harbor
[root@dokcer ~]# docker tag cirros:latest 127.0.0.1/my123/cirros:v1
[root@dokcer ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/harbor-exporter v2.9.4 2d73f8aa1dae 3 weeks ago 106MB
goharbor/redis-photon v2.9.4 cdc8364c58be 3 weeks ago 165MB
goharbor/trivy-adapter-photon v2.9.4 c2450773e2e6 3 weeks ago 504MB
goharbor/harbor-registryctl v2.9.4 309a9ce74755 3 weeks ago 149MB
goharbor/registry-photon v2.9.4 fd9a212aba2d 3 weeks ago 83.5MB
goharbor/nginx-photon v2.9.4 7d707a6be242 3 weeks ago 153MB
goharbor/harbor-log v2.9.4 43c3b30c4d6b 3 weeks ago 163MB
goharbor/harbor-jobservice v2.9.4 32cace7c28c0 3 weeks ago 140MB
goharbor/harbor-core v2.9.4 c69d87c3277b 3 weeks ago 168MB
goharbor/harbor-portal v2.9.4 ccec0edebddc 3 weeks ago 161MB
goharbor/harbor-db v2.9.4 ef215f05a8a0 3 weeks ago 269MB
goharbor/prepare v2.9.4 e958fd04a56e 3 weeks ago 206MB
127.0.0.1/my123/cirros v1 f9cae1daf5f6 3 years ago 12.6MB
cirros latest f9cae1daf5f6 3 years ago 12.6MB
[root@dokcer ~]#
[root@dokcer ~]# docker push 127.0.0.1/my123/cirros:v1 //上传到my123项目中
The push refers to repository [127.0.0.1/my123/cirros]
984ad441ec3d: Pushed
f0a496d92efa: Pushed
e52d19c3bee2: Pushed
v1: digest: sha256:483f15ac97d03dc3d4dcf79cf71ded2e099cf76c340f3fdd0b3670a40a198a22 size: 943
[root@dokcer ~]#
刷浏览器页面进入查看是否有此镜像
相关文章:

Docker私有仓库Harbor
简介 Docker私有仓库Harbor是一个开源的、企业级的Docker registry解决方案,它提供了安全、可靠和高效的容器镜像存储和分发服务。以下是关于Docker私有仓库Harbor的详细介绍: 一、Harbor的特点 基于角色的访问控制(RBAC)&#…...

48. 旋转图像/240. 搜索二维矩阵 II
48. 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 : 输入:matrix [[5,1,9,11],[2,4,…...

wsl安装Xfce桌面并设置系统语言和输入法
一、安装xfce (有相关的依赖都会安装) sudo apt -y install xfce4 二、 安装远程连接组件 sudo apt install xrdp -y 并重新启动 Xrdp 服务: sudo systemctl restart xrdp 本地windows系统中请按 winR 键 呼出运行 在运行中输入 mstsc…...

短信清空了!华为手机短信删除了怎么恢复?
“有没有人知道这是怎么回事呀,原先有一千多条未读一直放着没管,昨天根本没打开短信这个软件,今晚突然发现只剩一条了,是华为手机自动清理了吗!到底该怎么恢复呀?我真崩溃!” 在日常生活中&…...

Linux实现Flappy bird项目
目录 1、项目介绍 2、功能总结 3、前期准备 3.1 Ncurses库 3.2 信号机制 3.2.1 设置信号响应方式 3.2.2 设置定时器 4、代码实现 4.1 头文件引用及变量、函数定义 4.2 主函数 4.3 curses初始化 4.4 设置定时器 4.5 定时器响应函数 4.6 小鸟控制相关函数 4…...

【python量化交易】qteasy使用教程07——创建更加复杂的自定义交易策略
创建更加复杂的自定义交易策略 使用交易策略类,创建更复杂的自定义策略开始前的准备工作本节的目标继承Strategy类,创建一个复杂的多因子选股策略策略和回测参数配置,并开始回测 本节回顾 使用交易策略类,创建更复杂的自定义策略 …...

SpringBoot整合SpringScurity权限控制(菜单权限,按钮权限)以及加上SSH实现安全传输
文章目录 项目地址: 一、md5 与 先进的哈希算法的区别1.1. 安全性问题1.2. 设计目的1.3. 功能特性1.4. 适用性1.5. 总结 二、数据传输安全和数据加密实现:2.1 生成证书:2.2、在springboot中进行集成2.2.1 配置证书:2.2.2. 强制使用…...

力扣每日一题119:杨辉三角||
题目 简单 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出…...

AI语音模型PaddleSpeech踩坑(安装)指南
PaddleSpeech简介 PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。 PaddleSpeech安装步骤 提示:要找到一个合适的PaddleSpeech版本与pad…...

如何更好地使用Kafka? - 运行监控篇
要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现&#…...

数据可视化训练第四天(模拟投掷筛子并且统计频次)
投掷一个筛子 import matplotlib.pyplot as plt from random import randint import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides6):self.num_sidesnum_sidesdef roll(self):return randint(1,self.num_sides)num1000…...

4.1 编写程序,从键盘接收一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符
方法一: 运行效果: 输入B,输出显示ABC;输入A,输出显示AB 思路: 1、通过键盘输入接收一个字母。 2、将输入的字母减去1,得到前导字符,然后输出。 3、将输入的字母加上1,得…...
(Java)心得:LeetCode——18.四数之和
一、原题 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): …...

网络编程套接字详解
目录 1. 预备介绍 2.网络字节序 3.udp网络程序 4.地址转换函数 5.udp网络编程 1.预备介绍 1.1源IP地址和目标IP地址 举个例子: 从北京出发到上海旅游, 那么源IP地址就是北京, 目标IP地址就是上海. 1.2 端口号 作用: 标识一个进程, 告诉OS这个数据交给那个进程来处理; (1)…...
蓝桥杯备战11.歌唱比赛
P5738 【深基7.例4】歌唱比赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N 2e710,M 1e310; int a[N],sum[N];signed main() {//std::ios::sync_with_stdio(0),cin.…...
微信小程序中的图像奥秘:图片与Base64的华丽变身记
微信小程序中的图像奥秘:图片与Base64的华丽变身记 基本概念解析图片与Base64的关系为何转换 图片转Base64实战微信小程序使用wx.getImageInfo获取图片信息图片转换为Base64注意 Base64转图片直接在小程序页面显示云开发环境转换注意 遇遇问题排查思路结语引发讨论 …...

【35分钟掌握金融风控策略25】定额策略实战2
目录 基于收入和负债的定额策略 确定托底额度和盖帽额度 确定基础额度 基于客户风险评级确定风险系数 计算最终授信额度 确定授信有效期 基于收入和负债的定额策略 在实际生产中,客户的收入和负债数据大多无法直接获得,对于个人的收入和负债数据&…...
我和爬虫的故事
文章目录 爬虫简介个人经历未来总结 爬虫简介 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外…...

常用的简单友好的工单系统(免费)- WGCAT
最近在项目中,有工单系统的需求场景,所以想寻找一款轻量简单的运维工单软件,主要用来记录和处理工作中的一些故障、维护,主要用来记录设备的维护状态,包括服务器、主机、交换机那些 WGCAT,是一款简单轻量的…...

使用Pycharm编写Python程序时对基本类结构中方法的重写的两种初步操作方式
使用Pycharm编写Python程序时对基本类结构中方法的重写的两种初步操作方式 Python和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改&…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...