当前位置: 首页 > news >正文

搭建企业级私有仓库harbor

华子目录

  • `harbor`简介
  • 实验环境准备
    • 下载软件包
    • 安装`docker-ce`
    • hosts解析
  • 实验步骤
    • 配置https加密传输
    • 解压
    • 进入解压目录,修改文件配置
    • 启动`harbor`
  • 测试
    • 客户端配置`harbor本地加速器`
    • 注意
  • 通过`docker compose`管理`harbor`

harbor简介

harbor是由wmware公司开源的企业级docker registry项目

它提供了以下主要功能和特点:

  1. 基于角色访问控制RBAC):可以为不同的用户用户组分配不同的权限,增强了安全性和管理的灵活性
  2. 惊醒复制:支持在不同的harbor实例之间复制镜像,方便在多个数据中心或环境中分发镜像
  3. 图形化用户界面UI):提供了直观的web界面,便于管理镜像仓库、项目、用户等。
  4. 审计日志:记录了对镜像仓库各种操作,有助于追踪和审查活动
  5. 垃圾回收:可以清理不再使用的镜像节约存储空间

实验环境准备

下载软件包

  • 网址:https://github.com/goharbor/harbor/releases

在这里插入图片描述

这里我们选择v2.5.4版本
在这里插入图片描述
选择.tgz的包,进行下载

安装docker-ce

[root@docker-harbor ~]# yum install docker-ce -y[root@docker-harbor ~]# systemctl enable --now docker

hosts解析

[root@docker-harbor ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.139  reg.huazi.com

实验步骤

配置https加密传输

  • 证书key
[root@docker-harbor ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/huazi.com.key -addext "subjectAltName = DNS:reg.huazi.com" -x509 -days 365 -out certs/huazi.com.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:shanxi
Locality Name (eg, city) [Default City]:xi'an
Organization Name (eg, company) [Default Company Ltd]:docker
Organizational Unit Name (eg, section) []:registry
Common Name (eg, your name or your server's hostname) []:reg.huazi.com
Email Address []:admin@huazi.com[root@docker-harbor ~]# cd certs/
[root@docker-harbor certs]# ls
huazi.com.crt  huazi.com.key
[root@docker-harbor certs]#
  • 证书位置/root/certs/huazi.com.crt
  • key位置/root/certs/huazi.com.key

客户端获取harbor端的证书

[root@docker-harbor ~]# mkdir -p /etc/docker/certs.d/reg.huazi.com/
[root@docker-harbor ~]# cp /root/certs/huazi.com.crt /etc/docker/certs.d/reg.huazi.com/ca.crt[root@docker-harbor ~]# systemctl restart docker

解压

[root@docker-harbor ~]# tar -zxvf harbor-offline-installer-v2.5.4.tgz
harbor/harbor.v2.5.4.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

进入解压目录,修改文件配置

[root@docker-harbor ~]# cd harbor/
[root@docker-harbor harbor]# ls
common.sh  harbor.v2.5.4.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare[root@docker-harbor harbor]# cp harbor.yml.tmpl harbor.yml[root@docker-harbor harbor]# ls
common.sh  harbor.v2.5.4.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare#其中harbor.v2.5.4.tar.gz是一个镜像包
[root@docker-harbor harbor]# vim harbor.yml

在这里插入图片描述

在这里插入图片描述

hostname: reg.huazi.com# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80# https related config
https:# https port for harbor, default is 443port: 443# The path of cert and key files for nginxcertificate: /root/certs/huazi.com.crtprivate_key: /root/certs/huazi.com.key# enable strong ssl ciphers (default: false)# strong_ssl_ciphers: falseharbor_admin_password: 123456

启动harbor

[root@docker-harbor harbor]# ./install.sh --helpNote: Please set hostname and other necessary attributes in harbor.yml first. DO NOT use localhost or 127.0.0.1 for hostname, because Harbor needs to be accessed by external clients.
Please set --with-notary if needs enable Notary in Harbor, and set ui_url_protocol/ssl_cert/ssl_cert_key in harbor.yml bacause notary must run under https.
Please set --with-trivy if needs enable Trivy in Harbor
Please set --with-chartmuseum if needs enable Chartmuseum in Harbor
  1. 设置主机名和其他必要属性

    • 确实,您需要在harbor.yml文件中设置主机名(hostname)和其他必要的配置属性。
    • 主机名不应设置为localhost127.0.0.1,因为Harbor需要能够被外部客户端访问。
  2. 关于Notary

    • 注意:根据Harbor最新文档Notary可能已经被弃用或不再是Harbor核心组件。在配置Harbor时,如果您看到关于Notary的文档或选项,请确保它们与您正在使用的Harbor版本保持一致。如果Notary已被弃用,则不应再尝试启用它。
    • 如果您的Harbor版本仍然支持Notary,并且您需要在Harbor中启用它,那么您可能需要在安装或配置Harbor时添加--with-notary选项(尽管这取决于您的Harbor版本)。但是,由于Notary需要HTTPS,您还必须在harbor.yml中设置ui_url_protocolhttps,并提供有效的SSL证书(ssl_certssl_cert_key)。
  3. 关于Trivy

    • 如果您需要在Harbor中启用Trivy(一个用于容器镜像漏洞扫描器),请在安装或配置Harbor时添加--with-trivy选项。
  4. 关于Chartmuseum

    • 注意:同样地,根据Harbor最新文档Chartmuseum可能已经被整合为Harbor的一个内置组件,或者作为可选插件提供,或者已经完全被另一个组件取代。请查阅您正在使用的Harbor版本的官方文档以获取准确信息。
    • 如果您的Harbor版本仍然支持Chartmuseum作为独立组件,并且您需要在Harbor中启用它,那么您可能需要在安装或配置Harbor时添加--with-chartmuseum选项。但是,请注意,如果Chartmuseum已被整合或取代,则此选项可能不再有效。

这里我们需要Chartmuseum组件

[root@docker-harbor harbor]# ./install.sh --with-chartmuseum[Step 0]: checking if docker is installed ...Note: docker version: 27.3.1[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.29.7[Step 2]: loading Harbor images ...
......
......
......
[+] Running 12/12✔ Network harbor_harbor-chartmuseum  Created                                            0.1s✔ Network harbor_harbor              Created                                            0.1s✔ Container harbor-log               Started                                            0.4s✔ Container harbor-portal            Started                                            1.4s✔ Container chartmuseum              Started                                            1.1s✔ Container redis                    Started                                            1.5s✔ Container registry                 Started                                            1.4s✔ Container registryctl              Started                                            1.2s✔ Container harbor-db                Started                                            1.4s✔ Container harbor-core              Started                                            1.8s✔ Container harbor-jobservice        Started                                            2.3s✔ Container nginx                    Started                                            2.3s
✔ ----Harbor has been installed and started successfully.----[root@docker-harbor harbor]# ls
common     docker-compose.yml    harbor.yml       install.sh  prepare
common.sh  harbor.v2.5.4.tar.gz  harbor.yml.tmpl  LICENSE
  • 当执行完后,我们发现出现了docker-compose.yml文件,这时就可以使用docker compose工具管理harbor后台
[root@docker-harbor harbor]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
goharbor/harbor-exporter        v2.5.4    388b5ac2eed4   2 years ago   87.4MB
goharbor/chartmuseum-photon     v2.5.4    e5134e6ca037   2 years ago   231MB
goharbor/redis-photon           v2.5.4    c89d59625d5a   2 years ago   155MB
goharbor/trivy-adapter-photon   v2.5.4    1142826e8329   2 years ago   251MB
goharbor/notary-server-photon   v2.5.4    e542ccac08c2   2 years ago   112MB
goharbor/notary-signer-photon   v2.5.4    65644cf6aaa1   2 years ago   109MB
goharbor/harbor-registryctl     v2.5.4    984f0c8cd458   2 years ago   136MB
goharbor/registry-photon        v2.5.4    5e2d95b5227f   2 years ago   78.1MB
goharbor/nginx-photon           v2.5.4    0e682f78c76f   2 years ago   154MB
goharbor/harbor-log             v2.5.4    1c30eb78ebc4   2 years ago   161MB
goharbor/harbor-jobservice      v2.5.4    01ec4f1c5ddd   2 years ago   233MB
goharbor/harbor-core            v2.5.4    fb4df7c64e84   2 years ago   208MB
goharbor/harbor-portal          v2.5.4    bba3d21bc4b9   2 years ago   162MB
goharbor/harbor-db              v2.5.4    76e7b3295f2b   2 years ago   225MB
goharbor/prepare                v2.5.4    5582f3ef9fbe   2 years ago   163MB
[root@docker-harbor harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                   CREATED              STATUS                        PORTS                                                                                NAMES
9750c866f450   goharbor/nginx-photon:v2.5.4         "nginx -g 'daemon of…"   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   nginx
7d2a693579de   goharbor/harbor-jobservice:v2.5.4    "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                                                                                        harbor-jobservice
569947c42e90   goharbor/harbor-core:v2.5.4          "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                                                                                        harbor-core
8ef39f2a9087   goharbor/harbor-registryctl:v2.5.4   "/home/harbor/start.…"   About a minute ago   Up About a minute (healthy)                                                                                        registryctl
ce6c6ddef843   goharbor/chartmuseum-photon:v2.5.4   "./docker-entrypoint…"   About a minute ago   Up About a minute (healthy)                                                                                        chartmuseum
f2aaf4d9bdda   goharbor/registry-photon:v2.5.4      "/home/harbor/entryp…"   About a minute ago   Up About a minute (healthy)                                                                                        registry
2f9cb0b7d2d6   goharbor/redis-photon:v2.5.4         "redis-server /etc/r…"   About a minute ago   Up About a minute (healthy)                                                                                        redis
1de7bf425061   goharbor/harbor-db:v2.5.4            "/docker-entrypoint.…"   About a minute ago   Up About a minute (healthy)                                                                                        harbor-db
ee52470792cd   goharbor/harbor-portal:v2.5.4        "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)                                                                                        harbor-portal
497e949edfa7   goharbor/harbor-log:v2.5.4           "/bin/sh -c /usr/loc…"   About a minute ago   Up About a minute (healthy)   127.0.0.1:1514->10514/tcp                                                            harbor-log

此时容器会被自动开启

测试

在这里插入图片描述
在这里插入图片描述

  • 新建一个项目

在这里插入图片描述
在这里插入图片描述

  • huazi项目中目前没有镜像

在这里插入图片描述

客户端配置harbor本地加速器

[root@docker-harbor docker]# cd /etc/docker/
[root@docker-harbor docker]# vim daemon.json
{"registry-mirrors": ["https://reg.huazi.com"]
}[root@docker-harbor docker]# systemctl restart docker
  • 客户端登录到harbor仓库
[root@docker-harbor harbor]# docker login reg.huazi.com
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/#credential-storesLogin Succeeded
  • 上传镜像(上传到reg.huazi.com网址中的huazi目录下)
[root@docker-harbor ~]# docker images
timinglee/mario                 latest    9a35a9e43e8c   9 years ago   198MB[root@docker-harbor docker]# docker   tag   timinglee/mario:latest    reg.huazi.com/huazi/mario[root@docker-harbor ~]# docker images
timinglee/mario                 latest    9a35a9e43e8c   9 years ago   198MB
reg.huazi.com/huazi/mario       latest    9a35a9e43e8c   9 years ago   198MB#上传成功
[root@docker-harbor docker]# docker push reg.huazi.com/huazi/mario
Using default tag: latest
The push refers to repository [reg.huazi.com/huazi/mario]
5f70bf18a086: Pushed
44e5704d49fb: Pushed
dbe97b1b7330: Pushed
90222f49bc4c: Pushed
708fd576a927: Pushed
4aeeaca5ce76: Pushed
latest: digest: sha256:f4a933fb5a431e84e3d2623bfaa776c0d973d572b6db0a0b16dc243ffc7bcfa1 size: 2392
  • huazi目录下发现上传的镜像
    在这里插入图片描述
  • 上传镜像(上传到reg.huazi.com网址中的library目录下)
[root@docker-harbor docker]# docker  tag   timinglee/mario:latest   reg.huazi.com/library/chaojimali[root@docker-harbor docker]# docker images
reg.huazi.com/library/chaojimali   latest    9a35a9e43e8c   9 years ago   198MB#发现上传成功
[root@docker-harbor docker]# docker push reg.huazi.com/library/chaojimali
Using default tag: latest
The push refers to repository [reg.huazi.com/library/chaojimali]
5f70bf18a086: Pushed
44e5704d49fb: Pushed
dbe97b1b7330: Pushed
90222f49bc4c: Pushed
708fd576a927: Pushed
4aeeaca5ce76: Pushed
latest: digest: sha256:f4a933fb5a431e84e3d2623bfaa776c0d973d572b6db0a0b16dc243ffc7bcfa1 size: 2392
  • library目录下发现上传的镜像
    在这里插入图片描述

注意

  • docker tag时,harbor仓库网址名称项目名称一定要正确,否则上传会失败
  • harbor仓库搭建成功后,默认会有一个管理员账户admin

删掉这个chaojimali镜像后,重新拉取

[root@docker-harbor docker]# docker rmi reg.huazi.com/library/chaojimali:latest
Untagged: reg.huazi.com/library/chaojimali:latest
Untagged: reg.huazi.com/library/chaojimali@sha256:f4a933fb5a431e84e3d2623bfaa776c0d973d572b6db0a0b16dc243ffc7bcfa1
[root@docker-harbor docker]# docker pull chaojimali
Using default tag: latest
latest: Pulling from library/chaojimali
Digest: sha256:f4a933fb5a431e84e3d2623bfaa776c0d973d572b6db0a0b16dc243ffc7bcfa1
Status: Downloaded newer image for chaojimali:latest
docker.io/library/chaojimali:latest
[root@docker-harbor docker]# docker images
chaojimali                      latest    9a35a9e43e8c   9 years ago   198MB

通过docker compose管理harbor

  • docker compose down停止并删除容器
[root@docker-harbor harbor]# docker compose down
WARN[0000] /root/harbor/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 12/12✔ Container harbor-jobservice        Removed                                            0.1s✔ Container chartmuseum              Removed                                            0.1s✔ Container nginx                    Removed                                            0.2s✔ Container registryctl              Removed                                           10.1s✔ Container harbor-portal            Removed                                            0.1s✔ Container harbor-core              Removed                                            0.1s✔ Container harbor-db                Removed                                            0.1s✔ Container registry                 Removed                                            0.1s✔ Container redis                    Removed                                            0.2s✔ Container harbor-log               Removed                                           10.1s✔ Network harbor_harbor              Removed                                            0.1s✔ Network harbor_harbor-chartmuseum  Removed                                            0.1s
  • docker compose up -d启动容器
  • -d后台运行
[root@docker-harbor harbor]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES[root@docker-harbor harbor]# docker compose up -d
WARN[0000] /root/harbor/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 12/12✔ Network harbor_harbor-chartmuseum  Created                                            0.1s✔ Network harbor_harbor              Created                                            0.1s✔ Container harbor-log               Started                                            0.3s✔ Container harbor-db                Started                                            1.0s✔ Container chartmuseum              Started                                            0.9s✔ Container registry                 Started                                            1.1s✔ Container registryctl              Started                                            1.0s✔ Container harbor-portal            Started                                            0.9s✔ Container redis                    Started                                            1.1s✔ Container harbor-core              Started                                            1.4s✔ Container harbor-jobservice        Started                                            1.7s✔ Container nginx                    Started                                            1.8s
[root@docker-harbor harbor]#
[root@docker-harbor harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                   CREATED          STATUS                             PORTS                                                                                NAMES
61e8a6e26ad5   goharbor/nginx-photon:v2.5.4         "nginx -g 'daemon of…"   19 seconds ago   Up 17 seconds (health: starting)   0.0.0.0:80->8080/tcp, [::]:80->8080/tcp, 0.0.0.0:443->8443/tcp, [::]:443->8443/tcp   nginx
fa10c0be1ad3   goharbor/harbor-jobservice:v2.5.4    "/harbor/entrypoint.…"   19 seconds ago   Up 17 seconds (health: starting)                                                                                        harbor-jobservice
cbd69a01ce0d   goharbor/harbor-core:v2.5.4          "/harbor/entrypoint.…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        harbor-core
4352cec1c54b   goharbor/harbor-registryctl:v2.5.4   "/home/harbor/start.…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        registryctl
b4568f0c1d07   goharbor/chartmuseum-photon:v2.5.4   "./docker-entrypoint…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        chartmuseum
eed6568a9ea5   goharbor/redis-photon:v2.5.4         "redis-server /etc/r…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        redis
ff667909ae29   goharbor/registry-photon:v2.5.4      "/home/harbor/entryp…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        registry
132db9f5db03   goharbor/harbor-db:v2.5.4            "/docker-entrypoint.…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        harbor-db
287bc1e29cdf   goharbor/harbor-portal:v2.5.4        "nginx -g 'daemon of…"   19 seconds ago   Up 18 seconds (health: starting)                                                                                        harbor-portal
255ae63496e6   goharbor/harbor-log:v2.5.4           "/bin/sh -c /usr/loc…"   19 seconds ago   Up 19 seconds (health: starting)   127.0.0.1:1514->10514/tcp                                                            harbor-log

相关文章:

搭建企业级私有仓库harbor

华子目录 harbor简介实验环境准备下载软件包安装docker-cehosts解析 实验步骤配置https加密传输解压进入解压目录,修改文件配置启动harbor 测试客户端配置harbor本地加速器注意 通过docker compose管理harbor harbor简介 harbor是由wmware公司开源的企业级docker r…...

互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

李宏毅机器学习2022-HW8-Anomaly Detection

文章目录 TaskBaselineReportQuestion2 Code Link Task 异常检测Anomaly Detection 将data经过Encoder,在经过Decoder,根据输入和输出的差距来判断异常图像。training data是100000张人脸照片,testing data有大约10000张跟training data相同…...

用户体验分享 | YashanDB V23.2.3安装部署

近期崖山新版体验过程中,总能看到用户提问:openssl版本问题、monit命令找不到问题、yashan用户权限问题、数据库重装问题 今日整理了多位用户的安装经验,希望能够帮助到大家~ 1.Lucifer三思而后行 :YashanDB 个人版数据库安装部…...

【漏洞复现】泛微OA E-Office /E-mobile/App/init.php 任意文件上传漏洞

免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…...

SpringCloudEureka实战:搭建EurekaServer

1、依赖引入 <dependencies><!-- 注册中心 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency> </dependencies> <de…...

DataLight(V1.4.5) 版本更新,新增 Ranger、Solr

DataLight&#xff08;V1.4.5&#xff09; 版本更新&#xff0c;新增 Ranger、Solr DataLight 迎来了重大的版本更新&#xff0c;现已发布 V1.4.5 版本。本次更新对平台进行了较多的功能拓展和优化&#xff0c;新增了对 Ranger 和 Solr 服务组件的支持&#xff0c;同时对多项已…...

深度解析:Python蓝桥杯青少组精英赛道与高端题型概览

目录 一、蓝桥杯青少组简介二、赛项组别与年龄范围三、比赛内容与题型1. 基础知识范围2. 题型设置2.1 选择题2.2 编程题 3. 考试时长 四、奖项设置与激励措施五、总结 一、蓝桥杯青少组简介 蓝桥杯全国软件和信息技术专业人才大赛&#xff08;简称“蓝桥杯”&#xff09;是由工…...

如何使用SCCMSecrets识别SCCM策略中潜在的安全问题

关于SCCMSecrets SCCMSecrets是一款针对SCCM策略的安全扫描与检测工具&#xff0c;该工具旨在提供一种有关 SCCM 策略的全面安全检测方法。 该工具可以从各种权限级别执行&#xff0c;并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外&#xff0c;它还将…...

Qt 信号重载问题--使用lambda表达式--解决方法

在connect()中&#xff0c;使用lambda表达式时遇到信号重载&#xff0c;无法识别使用哪个参数时&#xff0c;可通过以下方法处理&#xff1a; 1. 使用QOverload: Qt5.7才有 connect(comboBox,QOverload<int>::of(&QComboBox::currentIndexChanged), [](int index)…...

并行编程实战——TBB框架的应用之一Supra的基础

一、TBB的应用 在前面分析了TBB框架的各种基本知识和相关的基础应用。这些基础的应用很容易通过学习文档或相关的代码来较为轻松的掌握。为了能够更好的理解TBB框架的优势&#xff0c;这里从一个开源的应用程序来分析一下TBB在其中的更高一层的抽象应用&#xff0c;以方便开发…...

std::vector

std::vector是C标准库中一个非常强大的容器类&#xff0c;它提供了动态数组的功能。std::vector可以自动调整大小&#xff0c;提供了随机访问的能力&#xff0c;同时还支持在序列的尾部高效地添加和删除元素。 当创建一个空的std::vector对象时&#xff0c;它不分配任何内存&a…...

Java Web 之 Cookie 详解

在 JavaWeb 开发中&#xff0c;Cookie 就像网站给浏览器贴的小纸条&#xff0c;用于记录一些用户信息或状态&#xff0c;方便下次访问时识别用户身份或进行个性化服务。 也可以这么理解&#xff1a; 场景一&#xff1a;想象一下&#xff0c;你去一家咖啡店&#xff0c;店员认…...

linux系统下让.py文件开机自启动

一 创建服务文件 1、打开终端 2、切换到root用户 sudo su3、创建一个新的systemd服务文件 nano /etc/systemd/system/total_test0619.service 4、在服务文件中添加以下内容 [Unit] DescriptionRun total_test0619.py at startup[Service] Typesimple ExecStart/usr/bin/n…...

linux远程桌面:xrdp 安装失败

window 如何远程 Linux 桌面 安装xrdp yum install xrdpsystemctl start xrdp 如果找不到软件包&#xff0c;就安装epel源&#xff0c;最好改成国内镜像的 在 /etc/yum.repos.d/ 下创建epel.repo,内容如下 [epel] nameExtra Packages for Enterprise Linux 7 - $basearch …...

9.30Python基础-元组(补充)、字典、集合

Python元组&#xff08;tuple&#xff09;补充 1、元组的不可变性 元组&#xff08;tuple&#xff09;是Python中的一种内置数据类型&#xff0c;用于存储不可变的序列。虽然元组本身不可变&#xff0c;但元组内的元素如果是可变对象&#xff08;如列表&#xff09;&#xff…...

桥接模式和NET模式的区别

桥接模式和NET模式的区别 NAT模式&#xff1a; NAT&#xff1a;网络地址转换&#xff08;模式&#xff09;&#xff1a;借助宿主机来上网&#xff0c;没桥接那么麻烦&#xff0c;只用配置DNS即可。 缺点&#xff1a;扎根于宿主机&#xff0c;不能和局域网内其它真实的主机进行…...

Pigar:Python 项目的依赖管理利器

&#x1f31f; 引言 在Python项目开发过程中&#xff0c;依赖管理是一个不可忽视的环节。一个精确且易于维护的requirements.txt文件对于项目的部署和协作至关重要。今天&#xff0c;我们将介绍一款名为Pigar的自动生成requirements.txt文件的依赖管理工具&#xff0c;它通过一…...

泰勒图 ——基于相关性与标准差的多模型评价指标可视化比较-XGBoost、sklearn

1、基于相关性与标准差的多模型评价指标可视化比较 # 数据读取并分割 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split plt.rcParams[font.family] = Times New Roman plt.rcParams[axes.unic…...

记录|Modbus-TCP产品使用记录【摩通传动】

目录 前言一、摩通传动实验图1.1 配置软件 IO_Studio1.2 测试软件Modbus Poll1.2.1 读写设置测试1.2.2 AI信号的读取 1.3 对应的C#连接Modbus的测试代码如下【自制&#xff0c;仅供参考】1.4 最终实验图 更新时间 前言 参考文章&#xff1a; 自己需要了解和对比某些产品的Modbu…...

工业交换机的RMON

工业交换机在现代网络中扮演着至关重要的角色&#xff0c;它不仅负责数据的高效传输&#xff0c;还具备强大的监控和管理能力。其中&#xff0c;RMON&#xff08;远程监控&#xff09;功能使得交换机的性能得以进一步提升&#xff0c;成为网络管理的重要工具。RMON提供了一种先…...

生态遥感数据下载分享

中国土壤湿度/土壤水分数据集&#xff08;2000-2020&#xff09; 下载网站&#xff1a;https://poles.tpdc.ac.cn/zh-hans/data/49b22de9-5d85-44f2-a7d5-a1ccd17086d2/#:~:text%E6%88%91%E4%BB%AC%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%AD%E5%9B%BD%E8%8C%83 note: The data can …...

ECharts 快速使用

最终效果 使用介绍 echarts图表的绘制&#xff0c;大体分为三步&#xff1a; 根据 DOM实例&#xff0c;通过 echarts.init方法&#xff0c;生成 echarts实例构建 options配置对象&#xff0c;整个echarts的样式&#xff0c;皆有该对象决定最后通过实例.setOption方法&#xf…...

进程--消息队列和共享内存

目录 消息队列 创建消息队列 删除消息队列 发送消息和接收 消息队列 消息队列就是一个消息的列表&#xff0c;进程可以在消息队列中添加消息和的读取消息 消息队列具有FIFO的特性&#xff0c;具有无名管道与有名管道各自的优势&#xff0c;可以支持任意两个进程的进程间通讯…...

useCallback()

官网直达&#xff1a;https://zh-hans.react.dev/reference/react/useCallback 点击按钮&#xff0c;子组件会重新渲染 import { memo, useState, useCallback } from react;const Child (props) > {console.log(我是子组件&#xff01;我在渲染呢&#xff01;&#xff0…...

Python面试题精选及解析--第二篇

在Python的面试中&#xff0c;除了基础语法和常用库的知识外&#xff0c;面试官往往还会通过一系列的问题来考察应聘者的逻辑思维、问题解决能力以及项目经验。以下是一些精心挑选的Python面试题及其详细答案&#xff0c;旨在帮助求职者更好地准备面试。 面试题一&#xff1a;…...

Linux操作常用问题

目录 Ubuntu操作问题vi编辑方向键键盘乱码回退键不能使用的问题解决问题的方法 Ubuntu操作问题 vi编辑方向键键盘乱码回退键不能使用的问题 编辑/etc/systemd/resolved.conf文件来修改DNS&#xff0c;结果编辑时键盘乱码&#xff0c;按下方向键会出现ABCD&#xff0c;且回退键…...

汽车发动机系统(ems)详细解析

汽车发动机系统EMS&#xff0c;即Engine-Management-System&#xff08;发动机管理系统&#xff09;&#xff0c;是现代汽车电子控制技术的重要组成部分。以下是对汽车发动机系统EMS的详细解析&#xff0c;内容将涵盖其定义、工作原理、主要组成、功能特点、技术发展以及市场应…...

对比学习训练是如何进行的

对比学习&#xff08;Contrastive Learning&#xff09;是一种自监督学习的方法&#xff0c;旨在通过拉近相似样本的表示、拉远不相似样本的表示来学习特征表示。在训练过程中&#xff0c;模型并不依赖标签&#xff0c;而是通过样本之间的相似性进行学习。以下是对比学习的基本…...

React 生命周期 - useEffect 介绍

在 React 中&#xff0c;useEffect 钩子可以被看作是函数组件中的一种副作用管理工具&#xff0c;它的行为可以模拟类组件中的不同生命周期方法。useEffect 的执行时机取决于其依赖项数组&#xff08;第二个参数&#xff09;的设置方式。 根据 useEffect 的使用方式&#xff0c…...

上海网站设计公司有哪些/免费网站推广网站短视频

1、Python常见异常类型&#xff1a; Exception 常规错误的基类 AttributeError 对象没有这个属性 IOError 输入/输出操作失败 IndexError 序列中没有此索引(index) KeyError 映射中没有这个键 NameError 未声明/初始化对象 (没有属性) Syntax…...

合肥做网站专家/电商网站开发

一、概述 通常情况下&#xff0c;我们是事先在类型中定义好属性的&#xff0c;但有时候&#xff0c;我们需要动态为一个类型添加某些属性&#xff0c;这个时候&#xff0c;我们就需要使用DynamicObject类型了。 二、Demo using System; using System.Collections.Generic; usin…...

上海微网站建设/低价刷粉网站推广

为什么80%的码农都做不了架构师&#xff1f;>>> 如果nginx一直出现 nginx bad gateway 5XX 之类的 首先用python manager.py runserver 0.0.0.0:8000 并且把debug改为True 输出调试信息 因为99%的可能性是项目源码中出现了问题 或者是uwsgi和nginx链接的socke…...

为了爱我可以做任何事俄剧网站/官网seo

一套完整的WordPress模板应至少具有如下文件&#xff1a; style.css : CSS(样式表)文件index.php : 主页模板archive.php : Archive/Category模板404.php : Not Found 错误页模板comments.php : 留言/回复模板footer.php : Footer模板header.php : Header模板sidebar.php : 侧栏…...

厦门网站建设方案报价/站长工具seo推广秒收录

new words&#xff1a; picnic n. 野餐 vi. 去野餐 过去式 picnicked过去分词 picnicked现在分词 picnicking复数 picnics第三人称单数 picnics bamboo n. 竹&#xff0c;竹子 vt. 为…装上篾条 adj. 竹制的&#xff1b;土著居民的 复数 bamboos On the go Do you wanna…...

手机社区网站模板/手机推广app

Linux程序包管理器(rpm,yum,源码安装)一&#xff0e;RPM程序包管理器debian的软件包管理器为deb&#xff0c;软件包后缀为.dpt。而红帽的程序包管理器为rpm&#xff0c;包后缀为.rpmRPM是redhat发行版专门用来管理Linux软件包的&#xff0c;最早由Red Hat开发出来&#xff0c;后…...