华为云云耀云服务器L实例评测 | 搭建企业级 Registry 服务器 Harbor

news2024/11/24 15:39:59

您需要了解

  • 本次搭建采用 华为云耀云服务器 ,一键部署、快速搭建企业级 Registry 服务器 Harbor v2.7.0

  • Docker 版本为24.0.5,Docker-compose采用 1.29.2,Harbor 采用 v2.7.0,点击这里Github下载。如访问受限,您可通过站内私信进行获取。

Harbor介绍

Harbor是一个开源的企业级Registry服务器,用于管理和存储Docker镜像和OCI容器镜像。作为一个高可用、安全可靠的容器镜像仓库,Harbor提供了丰富的功能和管理工具,以帮助组织有效地构建和管理容器镜像。

Harbor特性和优势

  1. 安全可靠:Harbor提供了严格的用户认证和访问控制机制,支持集成LDAP、AD等身份认证系统,保障镜像仓库的安全性。此外,它还提供镜像签名和验证功能,确保镜像的完整性和来源可信。
  2. 管理和控制:Harbor具有灵活而强大的权限管理功能,管理员可以精确控制用户对镜像的读写权限,实现细粒度的权限控制。同时,管理员可以轻松管理镜像仓库的生命周期,包括创建、删除、修改和搜索镜像,以及查看镜像的详细信息。
  3. 复制和同步:Harbor支持镜像仓库的复制和同步,在多个地理位置或数据中心之间同步镜像,提高可用性和安全性。这使得团队可以更方便地访问和使用镜像,无论其所在的地理位置。
  4. 审计和日志记录:Harbor提供全面的审计功能,记录用户的操作和系统事件,方便追踪和审计。这有助于组织监控和管理容器镜像的使用情况,保证合规性和安全性。
  5. 镜像扫描和漏洞管理:Harbor集成了容器镜像扫描工具,可以对镜像进行漏洞扫描和安全性检查。这有助于组织及时发现和解决镜像中存在的安全问题,并确保镜像的可信度。
  6. 多租户支持:Harbor支持多租户模式,可以根据团队或项目创建独立的命名空间,实现隔离和资源管理。这样不同团队之间可以独立管理自己的镜像仓库,提高开发效率和资源利用率。

系统设置

关闭防火墙

root@hcss-ecs-5c9b:~# ufw disable 
Firewall stopped and disabled on system startup

安装Docker

使用 ssh 连接到云服务器

# 查看云服务器版本
root@hcss-ecs-5c9b:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.1 LTS
Release:	22.04
Codename:	jammy

# 如果之前安装过请执行此命令卸载docker
root@hcss-ecs-5c9b:~# apt-get remove docker docker-engine docker.io

更新软件包列表并安装 Docker 的依赖项

#更新软件包列表
root@hcss-ecs-5c9b:~# apt-get update

# 安装 Docker 软件包依赖项
root@hcss-ecs-5c9b:~# apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任 Docker 的 GPG 公钥

# 信任Docker的GPG公钥:
root@hcss-ecs-5c9b:~# curl -fsSL https://repo.huaweicloud.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加 Docker 的稳定版存储库

# 对于amd64架构的计算机,添加软件仓库:
root@hcss-ecs-5c9b:~#  add-apt-repository "deb [arch=amd64] https://repo.huaweicloud.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新软件包列表,并安装 Docker

# 更新索引文件并安装
root@hcss-ecs-5c9b:~# apt-get update
# 安装 docker
root@hcss-ecs-5c9b:~# apt-get install docker-ce docker-ce-cli containerd.io

验证 Docker 安装是否成功

# 查看 docker 版本
root@hcss-ecs-5c9b:~# docker -v
Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1

启动并查看 Docker 服务

# 启动并查看 docker 服务
root@hcss-ecs-5c9b:~# systemctl start  docker.service
root@hcss-ecs-5c9b:~# systemctl status docker.service
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; en>
     Active: active (running) since Wed 2023-09-20 13:43:42>
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 363725 (dockerd)
      Tasks: 9
     Memory: 31.3M
        CPU: 266ms
     CGroup: /system.slice/docker.service
             └─363725 /usr/bin/dockerd -H fd:// --container>

安装Docker Compose

执行安装命令

# 安装docker-compose
root@hcss-ecs-5c9b:~# apt install docker-compose

验证 Docker Compose 是否成功安装

# 查看版本
root@hcss-ecs-5c9b:~# docker-compose -v
docker-compose version 1.29.2, build unknown

配置镜像加速器

下载默认在dockerhub上拉取镜像,可配置镜像加速器解决拉取过慢问题

# 以root用户登录容器引擎所在的虚拟机
# 修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容

root@hcss-ecs-5c9b:~# vi /etc/docker/daemon.json

{
    "registry-mirrors": [ "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com" ]
}

# 按“Esc”,输入:wq保存并退出。

在这里插入图片描述

# 重启容器引擎
root@hcss-ecs-5c9b:~# ystemctl restart docker

# 配置结果
root@hcss-ecs-5c9b:~# docker info

执行docker info,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。

在这里插入图片描述

Habor安装

传包并解压

root@hcss-ecs-5c9b:~# ls
harbor-offline-installer-v2.7.0.tgz  install.sh  stackhub
HSSInstall                           snap
root@hcss-ecs-5c9b:~# tar -zxvf harbor-offline-installer-v2.7.0.tgz 
harbor/harbor.v2.7.0.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

配置Harbor

修改 harbor.yml

root@hcss-ecs-5c9b:~# ls
harbor                               HSSInstall  snap
harbor-offline-installer-v2.7.0.tgz  install.sh  stackhub
root@hcss-ecs-5c9b:~# cd harbor/
root@hcss-ecs-5c9b:~/harbor# ls
common.sh             harbor.yml.tmpl  LICENSE
harbor.v2.7.0.tar.gz  install.sh       prepare
root@hcss-ecs-5c9b:~/harbor# cp harbor.yml.tmpl harbor.yml
root@hcss-ecs-5c9b:~/harbor# vim harbor.yml
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.

# 修改主机名为本机IP地址
hostname: 124.71.212.8

# 修改端口号为8888,可自定义
# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 5000

# 注释 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

# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
#   # set enabled to true means internal tls is enabled
#   enabled: true
#   # put your cert and key files on dir
#   dir: /etc/harbor/tls/internal

# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
# external_url: https://reg.mydomain.com:8433

# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.

# 修改管理员密码
harbor_admin_password: root

修改 docker.service

root@hcss-ecs-5c9b:~/harbor# vim /lib/systemd/system/docker.service 

#在 ExecStart 参数后面添加 --insecure-registry=124.71.212.8:5000
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=124.71.212.8:8888

# 重启服务
root@hcss-ecs-5c9b:~/harbor# systemctl daemon-reload 
root@hcss-ecs-5c9b:~/harbor# systemctl restart docker.service 

运行 prepare 脚本准备镜像

root@hcss-ecs-5c9b:~/harbor# ls
common.sh             harbor.yml       install.sh  prepare
harbor.v2.7.0.tar.gz  harbor.yml.tmpl  LICENSE
root@hcss-ecs-5c9b:~/harbor# ./prepare 
prepare base dir is set to /root/harbor
Unable to find image 'goharbor/prepare:v2.7.0' locally
v2.7.0: Pulling from goharbor/prepare
1871d44f4cdb: Pull complete 
9e5f23534b75: Pull complete 
b234075cadb4: Pull complete 
2ee6e5a578c1: Pull complete 
0b0e76074063: Pull complete 
c4c9b2e450d6: Pull complete 
c70804059354: Pull complete 
721611d803a1: Pull complete 
d53c5290e042: Pull complete 
0d8cc28f3d0c: Pull complete 
Digest: sha256:47df4e214c8fd9ea0352a903dba884a480fa18f39ef426f7b890cf822f848139
Status: Downloaded newer image for goharbor/prepare:v2.7.0
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/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 dir

检查脚本命令

root@hcss-ecs-5c9b:~/harbor# docker compose 
docker: 'compose' is not a docker command.
See 'docker --help'

root@hcss-ecs-5c9b:~/harbor# docker-compose 
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [--profile <name>...] [options] [--] [COMMAND] [ARGS...]
  docker-compose -h|--help
  
# 检查 common.sh
root@hcss-ecs-5c9b:~/harbor# vim common.sh 
119         elif [[ $(docker-compose --version) =~ (([0-9]+)\.([    0-9]+)([\.0-9]*)) ]]

# 检查 install.sh
root@hcss-ecs-5c9b:~/harbor# vim install.sh 
 26 DOCKER_COMPOSE=docker-compose

安装Horbor

root@hcss-ecs-5c9b:~/harbor# ./install.sh 

# 完整日志流记录
[Step 0]: checking if docker is installed ...

Note: docker version: 24.0.5

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.29.2

[Step 2]: loading Harbor images ...
Loaded image: goharbor/prepare:v2.7.0
716575e41c45: Loading layer  145.8MB/145.8MB
af0525d96b0b: Loading layer  16.72MB/16.72MB
939977d7cbf6: Loading layer   5.12kB/5.12kB
005530be0f99: Loading layer  6.144kB/6.144kB
9764bccefdd0: Loading layer  3.072kB/3.072kB
38fe09b6e0e7: Loading layer  2.048kB/2.048kB
9d659849215a: Loading layer   2.56kB/2.56kB
bee3f2947ec7: Loading layer   2.56kB/2.56kB
e4e05d8658d3: Loading layer   2.56kB/2.56kB
e7991cc39265: Loading layer  9.728kB/9.728kB
Loaded image: goharbor/harbor-db:v2.7.0
d79110caaa26: Loading layer  8.902MB/8.902MB
b8cddfca4e88: Loading layer  3.584kB/3.584kB
071b47da1d9b: Loading layer   2.56kB/2.56kB
d22932d9f6c7: Loading layer  84.83MB/84.83MB
b2f2e9cbceac: Loading layer  5.632kB/5.632kB
53cce0f5bd54: Loading layer    108kB/108kB
40a6c61dcc44: Loading layer  44.03kB/44.03kB
6d7dba633513: Loading layer  85.77MB/85.77MB
44309ebcfcf7: Loading layer   2.56kB/2.56kB
Loaded image: goharbor/harbor-core:v2.7.0
cebcabcec86e: Loading layer    127MB/127MB
f3a76df94b70: Loading layer  3.584kB/3.584kB
ac9852cda3ce: Loading layer  3.072kB/3.072kB
a5bab3cf8af7: Loading layer   2.56kB/2.56kB
d52202b6a929: Loading layer  3.072kB/3.072kB
bd8a7ca8438d: Loading layer  3.584kB/3.584kB
a6a054173348: Loading layer  20.99kB/20.99kB
Loaded image: goharbor/harbor-log:v2.7.0
1a3b490c3dc4: Loading layer  8.902MB/8.902MB
7cbd50b78394: Loading layer  25.65MB/25.65MB
7119ae84be31: Loading layer  4.608kB/4.608kB
c9c5875f25c8: Loading layer  26.44MB/26.44MB
Loaded image: goharbor/harbor-exporter:v2.7.0
c8c89cfdc06a: Loading layer  119.1MB/119.1MB
Loaded image: goharbor/nginx-photon:v2.7.0
59736e375413: Loading layer  5.759MB/5.759MB
6cc787909b61: Loading layer  91.75MB/91.75MB
a56e97e08300: Loading layer  3.072kB/3.072kB
57925eac82a6: Loading layer  4.096kB/4.096kB
6e36a605c736: Loading layer  92.54MB/92.54MB
Loaded image: goharbor/chartmuseum-photon:v2.7.0
175f4dc2d45f: Loading layer  119.1MB/119.1MB
4e26408b204b: Loading layer  6.143MB/6.143MB
f2e93a87e40b: Loading layer  1.249MB/1.249MB
e5cceb0b0435: Loading layer  1.194MB/1.194MB
Loaded image: goharbor/harbor-portal:v2.7.0
b887c32c40a7: Loading layer  8.902MB/8.902MB
938a7e3c75f5: Loading layer  3.584kB/3.584kB
5a5a28182655: Loading layer   2.56kB/2.56kB
ebab1e49abda: Loading layer  103.3MB/103.3MB
4ce14e0439d9: Loading layer    104MB/104MB
Loaded image: goharbor/harbor-jobservice:v2.7.0
fbaa7a10893c: Loading layer  5.759MB/5.759MB
c688ac7b41fa: Loading layer  4.096kB/4.096kB
d7c1e408fc7d: Loading layer  17.41MB/17.41MB
55958792b639: Loading layer  3.072kB/3.072kB
a914e1c2d3e7: Loading layer  30.69MB/30.69MB
b91233145a72: Loading layer  48.89MB/48.89MB
Loaded image: goharbor/harbor-registryctl:v2.7.0
4bfd949c2891: Loading layer  5.759MB/5.759MB
7fd746eb54cc: Loading layer  4.096kB/4.096kB
026a4a79ef61: Loading layer  3.072kB/3.072kB
4e8dca75f609: Loading layer  17.41MB/17.41MB
7e017925a772: Loading layer   18.2MB/18.2MB
Loaded image: goharbor/registry-photon:v2.7.0
bd6904b66a79: Loading layer  5.754MB/5.754MB
4bea14657109: Loading layer  8.987MB/8.987MB
629d40c48f45: Loading layer  15.88MB/15.88MB
48d73b35455c: Loading layer  29.29MB/29.29MB
fe12338e806d: Loading layer  22.02kB/22.02kB
dcbe4fc18411: Loading layer  15.88MB/15.88MB
Loaded image: goharbor/notary-server-photon:v2.7.0
cc039d70dda6: Loading layer  119.9MB/119.9MB
c128fc8dd5aa: Loading layer  3.072kB/3.072kB
e030017184f0: Loading layer   59.9kB/59.9kB
f7a67f51f6d5: Loading layer  61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v2.7.0
c4c80dff091a: Loading layer  5.754MB/5.754MB
26f51848acfb: Loading layer  8.987MB/8.987MB
fb0e59f893b6: Loading layer  14.47MB/14.47MB
e17fcd490db6: Loading layer  29.29MB/29.29MB
f0f3d13b4bdf: Loading layer  22.02kB/22.02kB
73965e1762cb: Loading layer  14.47MB/14.47MB
Loaded image: goharbor/notary-signer-photon:v2.7.0
2d831b255ec9: Loading layer  6.287MB/6.287MB
603534b77185: Loading layer  4.096kB/4.096kB
edbbda0ede29: Loading layer  3.072kB/3.072kB
11ccb87ea0a3: Loading layer  180.6MB/180.6MB
13afce1af948: Loading layer  13.22MB/13.22MB
b05259901192: Loading layer  194.6MB/194.6MB
Loaded image: goharbor/trivy-adapter-photon:v2.7.0


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
prepare base dir is set to /root/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Clearing the configuration file: /config/registry/passwd
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/log/rsyslog_docker.conf
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/portal/nginx.conf
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
loaded secret from file: /data/secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir


Note: stopping existing Harbor instance ...
Removing network harbor_harbor
WARNING: Network harbor_harbor not found.



[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating redis         ... done
Creating registryctl   ... done
Creating registry      ... done
Creating harbor-db     ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
✔ ----Harbor has been installed and started successfully.----

登录Harbor

在控制台配置安全组规则,默认放行 5000端口

在这里插入图片描述

默认管理员账号 admin,密码为 harbor.yml 文件中的自定义密码

登录访问 : 宿主机ip:5000

在这里插入图片描述

测试

创建项目

访问级别设置为 公开,可以进行匿名拉取,存储容量默认 -1表示大小没有限制

在这里插入图片描述

推送镜像

进入项目后,在右上角推送命令中可查看操作语句,注意推送镜像之前需要身份认证

在这里插入图片描述

# 标记镜像
root@hcss-ecs-5c9b:~/harbor# docker images | grep mysql
mysql                           latest    8da80fe49fcf   9 days ago     577MB
root@hcss-ecs-5c9b:~/harbor# docker tag mysql:latest 124.71.212.8:5000/test/mysql:latest
root@hcss-ecs-5c9b:~/harbor# docker images | grep mysql
124.71.212.8:5000/test/mysql    latest    8da80fe49fcf   9 days ago     577MB
mysql                           latest    8da80fe49fcf   9 days ago     577MB

# 登录镜像仓库(身份认证)
root@hcss-ecs-5c9b:~/harbor# docker login 124.71.212.8:5000
Username: admin
Password: 
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-store

Login Succeeded

# 推送镜像
root@hcss-ecs-5c9b:~/harbor# docker push 124.71.212.8:5000/test/
mysql:latest 
The push refers to repository [124.71.212.8:5000/test/mysql]
070004d6f2b9: Pushed 
4a8bc1dfb84c: Pushed 
ea5c2f5028eb: Pushed 
8a1ed57d6b0b: Pushed 
db54cc7f7801: Pushed 
a5edafed24d3: Pushed 
5a3901a789d1: Pushed 
288a6a601202: Pushed 
39b5c3aa669c: Pushed 
b69087572af7: Pushed 
latest: digest: sha256:ecf2a95e14266b1d3fb72968b84ba2f32f1a0e9288d4ed2dc72f2012d3bb8587 size: 2411

在这里插入图片描述

拉取镜像

# 删除mysql镜像
root@hcss-ecs-5c9b:~/harbor# docker rmi $(docker images |grep mysql |awk '{print $1}')
Untagged: mysql:latest
Untagged: mysql@sha256:85ab57eb4a48ada2a341dcf7d96733ce2f370fffb8e8e216991b106e50fa6434
Untagged: 124.71.212.8:5000/test/mysql:latest
Untagged: 124.71.212.8:5000/test/mysql@sha256:ecf2a95e14266b1d3fb72968b84ba2f32f1a0e9288d4ed2dc72f2012d3bb8587
Deleted: sha256:8da80fe49fcfad1ac311a2e34c42730c943706c2008083f5e4feeb6d77cdbc1f
Deleted: sha256:1dee80423727000ed4aab830ff58c69c33f28026588d79be8fcf20476d5b588a
Deleted: sha256:89108480e1357e089c858de8226520a603ec3ed9902c0aecbc0b60fd0b120f17
Deleted: sha256:bcbe5b3c714fe855e5c201297aa78834e4e6c90f325dd521544eee88adc07fb6
Deleted: sha256:08c58bd0ff85ec37381585fde80f12e0e53531925ab1f04c8065fcd85e7b83a2
Deleted: sha256:eab11e45b99d4cfc2f4279c9d1d1b5ccd28195f744e281ec8303049fe0e5ee19
Deleted: sha256:90140e11eaa56000514f32841d4b0eb9495e6bdb2e9ddac6060c872da49b7476
Deleted: sha256:2532b8812e20521428449263a74092c4317e4651278ee7b70536a0afe1270fe1
Deleted: sha256:9a1bca0e16e16d75dc59ea61f9b3854621622dc2b8319bbfbe5a8c0b139a8618
Deleted: sha256:6403d78b2f772e1c0205e736bf2cbfbaf7676d0403ec4b3a63de0e88f68b1eaf
Deleted: sha256:b69087572af7a6dbd742a1e2807c34237c995257c631aece53a8f9d99e036daa


# 拉取mysql镜像
root@hcss-ecs-5c9b:~/harbor# docker pull 124.71.212.8:5000/test/mysql:latest
latest: Pulling from test/mysql
bc377bce3181: Pull complete 
80bab949ab51: Pull complete 
73682200afb7: Pull complete 
d1c32d486523: Pull complete 
54341582c90c: Pull complete 
7490cd8f4d9b: Pull complete 
de967683cb3b: Pull complete 
39564f901a1e: Pull complete 
c95e6efa291a: Pull complete 
8366d05afd7c: Pull complete 
Digest: sha256:ecf2a95e14266b1d3fb72968b84ba2f32f1a0e9288d4ed2dc72f2012d3bb8587
Status: Downloaded newer image for 124.71.212.8:5000/test/mysql:latest
124.71.212.8:5000/test/mysql:latest

root@hcss-ecs-5c9b:~/harbor# docker images |grep mysql
124.71.212.8:5000/test/mysql    latest    8da80fe49fcf   9 days ago     577MB

·END

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

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

相关文章

Visual Studio 代码显示空格等空白符

1.VS2010: 快捷键&#xff1a;CtrlR,W 2.VS2017、VS2019、VS2022&#xff1a; 工具 -> 选项 -> 文本编辑器 -> 显示 -> 勾选查看空白

RWA分析通过10个问题。不要让数字和视觉欺骗您!(文章很长,请仔细阅读)

已经有30个小伙伴加入我们的星球了&#xff0c;如果你不介意的话&#xff0c;可以加入 我的知识星球主要分享 1. 分享区块链各种有价值的内容 2. 一起攻读一些有用的书籍 3. 财富密码&#xff08;不敢保证&#xff09; 4. 一些自我的感悟 1.什么是现实世界资产&#xff08;RWA&…

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值 文章目录 一、前言二、Flutter Web 中的 URL 处理三、如何从 URL 中获取参数四、实际业务中的用法五、完整示例六、总结 一、前言 大家好&#xff01;我是小雨青年&#xff0c;今天我想和大家分享一下在 Flutter Web 开发…

【C++历险记】国庆专辑---探索多态迷宫的代码之旅!

本篇目录 一、什么是多态&#xff1f;二、多态的定义及其实现2.1多态构成的条件2.2虚函数2.3虚函数的重写2.3.1析构函数的重写 2.4C11 override 和 final2.5重载、覆盖(重写)、隐藏(重定义)的对比2.6为什么不能是子类的指针或者引用呢&#xff1f;2.7为什么不能是父类对象呢&am…

【大家的项目】NFS FUSE: 为什么我们用Rust实现了自己的NFS服务器

乐观地看FUSE 我喜欢文件。每个计算机系统都理解文件。每个程序都知道如何读取和写入文件。这是一个真正通用的API。因此&#xff0c;我喜欢FUSE的想法。FUSE的名字来源于Filesystem in Userspace&#xff0c;也就是“用户态文件系统”&#xff0c;是一套允许用户模式程序定义文…

gwas数据根据eaf Z 和N 求beta和se

https://www.nature.com/articles/s41590-023-01588-w#Sec10

基于Java的汽车票网上预订系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【计算机网络】应用层协议原理

文章目录 网络应用程序体系结构客户-服务器体系结构P2P体系结构 进程通信客户和服务器进程进程与计算机网络之间的接口进程寻址 可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性 因特网提供的运输服务TCP服务面向连接的服务可靠数据传输服务TCP安全 UDP服务因特网运输…

Redis实现API访问频率限制

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

phpstudy_pro高效率建一个属于自己的网站

1.下载phpStudy_32 2.下载wordpress-6.3-zh_CN 安装好phpstudy后启动phpstudy中对应的服务&#xff0c;并在网站中配置好对一个的应用的路径 ps:根目录中的路径是你想要通过phpstudy部署应用的路径 这里以wordpress为例 将下载wordpress的压缩包解压后&#xff0c;需要修改…

Python海洋专题六之Cartopy画地形水深图

Python海洋专题六之Cartopy画地形水深图 海洋与大气科学 上期读取nc水深文件&#xff0c;并出图 但是存在一些不完美&#xff0c;本期修饰 本期内容 1&#xff1a;使用Cartopy画出范围图 导入函数包 import matplotlib.pyplot as plt import cartopy.crs as ccrs import c…

上机实验一 顺序表的基本操作和简单程序 西安石油大学数据结构

上机一 实验名称&#xff1a;顺序表的基本操作和简单程序 题目&#xff1a;设计一个有序顺序表&#xff0c;实现以下操作&#xff1a; 1.将元素x插入表中并保持有序&#xff1b; 2.查找值为x的元素&#xff0c;若找到则将其删除&#xff1b; 3.输出表中所有元素。 要求&a…

当面试被问到jvm(Java虚拟机)时,如何将面试官引入自己的节奏?

本文目录 前言快问快答抛砖引玉锦上添花好书推荐总结 前言 作为一名Java开发工程师&#xff0c;不管是校招还是社招jvm一定是必问必会的知识点。虽然说真正开发中用到的不多&#xff0c;甚至可以说用不到&#xff08;对于刚入行或者Java初级&#xff09;&#xff0c;但是当面试…

mathtype试用期后如何继续使用?

MathType7已经正式发布&#xff0c;作为一款强大的数学公式编辑器可以将编辑好的公式保存成多种图片格式或透明图片模式&#xff0c;可以很方便的添加或移除符号、表达式等模板&#xff08;只需要简单地用鼠标拖进拖出即可)&#xff0c;也可以很方便地修改模板&#xff0c;为理…

AdaBoost算法解密:从基础到应用的全面解析

目录 一、简介什么是AdaBoostAdaBoost的历史和重要性定义 二、基础概念集成学习&#xff08;Ensemble Learning&#xff09;定义示例 弱学习器和强学习器定义示例 三、AdaBoost算法原理样本权重&#xff08;Sample Weights&#xff09;定义示例 学习器权重&#xff08;Learner …

大麦订单截图生成 大麦一键生成订单截图

新版大麦订单生成 图样式展示 这个样式图就是在大麦生成完的一个订单截图&#xff0c;它的状态是等待卖家发货 后台一键生成&#xff0c;独立后台管理 教程&#xff1a;修改conf数据库账号密码 不会的可以看源码里有搭建教程 下载程序&#xff1a;https://pan.baidu.com/…

python自动解析301、302重定向链接

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 使用模块requests 方式代码如下&#xff1a; import requests url_string"http://******" r requests.head(url_string, streamTrue) print r.h…

测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

文章目录 一、任务描述二、指标分析2.1 TP/FP/FN/TN2.2 精准率2.3 召回率 三、接口处理四、数据集处理五、开始计算指标五、实用工具5.1 移动文件5.2 可视化JSON标签5.3 可视化TXT标签 一、任务描述 通过给定的算法接口&#xff0c;对算法的输出&#xff08;置信度、检测框、告…

【教学类-38-02】20230724京剧脸谱2.0——竖版(小彩图 大面具)(Python 彩图彩照转素描线描稿)

结果展示 背景需求&#xff1a; 前文体运用Python颜色提取功能&#xff0c;将“京剧脸谱”彩色图片转化为线描图案。 【教学类-38】20230724京剧脸谱1.0——横版“彩图线图等大”&#xff08;Python 彩图彩照转素描线描稿&#xff09;_reasonsummer的博客-CSDN博客 存在问题&…

大语言模型之十二 SentencePiece扩充LLama2中文词汇

大语言模型的发展潜力已经毋庸置疑了&#xff0c;如何让中文大语言模型更适合中小公司使用这是一道难题。在模型的选择上我们倾向于选择国外的LLama或者BLoom之类的&#xff0c;而不是百川之类的中文大模型&#xff0c;原因在于从基建到框架到数据国外的开源资料非常多&#xf…