09 - 镜像管理之:部署单点harbor

news2024/9/21 0:37:13

本次准备了3台机器:harbor-01、harbor-02、harbor-db,用于测试 单点模式、高可用模式 部署 harbor。

ip主机名规格操作系统说明
192.168.217.136harbor-012c4gCentos7.9harbor 服务器,测试单点harbor
192.168.217.135harbor-022c4gCentos7.9harbor 服务器
192.168.217.137harbor-db2c4gCentos7.9nginx、redis、mysql

1 准备环境

# 本次测试部署到Centos7.9机器上,如下:
[root@harbor-01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

[root@harbor-01 ~]# uname -a
Linux harbor-01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux


重要的是,务必给服务器优化一些系统参数,具体请点击这里参见 [第2节 准备环境]。


2 安装docker

[root@harbor-01 ~]# yum install -y wget net-tools vim
[root@harbor-01 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@harbor-01 ~]# yum -y install docker-ce-24.0.5-1.el7
[root@harbor-01 ~]# systemctl enable docker && systemctl start docker
[root@harbor-01 ~]# docker --version



# 检查docker是否安装成功
[root@harbor-01 ~]# docker info


3 安装docker-compose


安装docker-compose, 我们可以从 Github 下载它的二进制包来使用,地址:
https://github.com/docker/compose/releases

[root@harbor-01 ~]# curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)"  -o  /usr/local/bin/docker-compose
[root@harbor-01 ~]# chmod  +x  /usr/local/bin/docker-compose 
[root@harbor-01 ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 检查compose是否安装成功
[root@harbor-01 ~]# docker-compose --version
Docker Compose version v2.26.1

小知识:
/usr/bin 系统预装的一些可执行程序,随系统升级会改变;
/usr/local/bin 用户安装的可执行程序,推荐放在这里,不受系统升级影响。


4 离线安装harbor


harbor有两种部署/访问方式:http、https,下面分别进行演示。

4.1 http 方式部署harbor


4.1.1 下载安装包


Harbor 官方网站:

  • 官网:https://goharbor.io/
  • Github:https://github.com/goharbor/harbor

在这里插入图片描述

将此安装包下载到服务器上:
在这里插入图片描述


4.1.2 开始安装

第一步:解压配置文件
[root@harbor-01 ~]# tar -zvxf harbor-offline-installer-v2.10.1.tgz 

#下载下来之后解压缩,目录下会有harbor.yml.tmpl (新版本是.yml文件,之前版本是.conf 或者 .cfg文件),就是Harbor的配置文件了。
[root@harbor-01 ~]# cd harbor
[root@harbor-01 harbor]# ls
common.sh  harbor.v2.10.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare


第二步:修改配置文件
# 主要修改三个地方
[root@harbor-01 harbor]# vi harbor.yml
hostname: reg.mydomain.com			      # 修改成Harbao部署机自身的ip地址
https: 					              # 注释https相关配置
harbor_admin_password: Harbor12345	      # harbor初始管理员密码为Harbor12345, 这里最好修改成自己的密码,默认密码至少8位,最好是大小写、数字和特殊字符。


第三步:开始安装
# 检查环境
[root@harbor-01 harbor]# ./prepare      

# 执行完成后,会发现解压目录harbor下面多了一个docker-compose.yml文件,里面包含了harbor依赖的镜像和对应容器创建的信息。
[root@harbor-01 harbor]# ls
common  common.sh  docker-compose.yml  harbor.v2.10.1.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare

# 开始安装
[root@harbor-01 harbor]# ./install.sh   

# 检查运行情况
[root@harbor-01 harbor]# docker-compose ps  # "注意docker-compose"命令只能在当前harbor目录下使用(因为该目录下有harbor配置文件)
WARN[0000] /root/harbor/docker-compose.yml: `version` is obsolete 
NAME                IMAGE                                 COMMAND                   SERVICE       CREATED          STATUS                    PORTS
harbor-core         goharbor/harbor-core:v2.10.1          "/harbor/entrypoint.…"   core          53 seconds ago   Up 52 seconds (healthy)   
harbor-db           goharbor/harbor-db:v2.10.1            "/docker-entrypoint.…"   postgresql    53 seconds ago   Up 52 seconds (healthy)   
harbor-jobservice   goharbor/harbor-jobservice:v2.10.1    "/harbor/entrypoint.…"   jobservice    53 seconds ago   Up 51 seconds (healthy)   
harbor-log          goharbor/harbor-log:v2.10.1           "/bin/sh -c /usr/loc…"   log           53 seconds ago   Up 52 seconds (healthy)   127.0.0.1:1514->10514/tcp
harbor-portal       goharbor/harbor-portal:v2.10.1        "nginx -g 'daemon of…"   portal        53 seconds ago   Up 52 seconds (healthy)   
nginx               goharbor/nginx-photon:v2.10.1         "nginx -g 'daemon of…"   proxy         53 seconds ago   Up 51 seconds (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp
redis               goharbor/redis-photon:v2.10.1         "redis-server /etc/r…"   redis         53 seconds ago   Up 52 seconds (healthy)   
registry            goharbor/registry-photon:v2.10.1      "/home/harbor/entryp…"   registry      53 seconds ago   Up 52 seconds (healthy)   
registryctl         goharbor/harbor-registryctl:v2.10.1   "/home/harbor/start.…"   registryctl   53 seconds ago   Up 52 seconds (healthy) 


浏览器访问:
http://192.168.217.136 admin Harbor12345
在这里插入图片描述

4.1.3 Harbor 服务的关闭和启动

停止harbor: "docker-compose down -v"

[root@harbor-01 harbor]# docker-compose down -v
WARN[0000] /root/harbor/docker-compose.yml: `version` is obsolete 
[+] Running 10/10
 ✔ Container harbor-jobservice  Removed                                                                                                         0.3s 
 ✔ Container nginx              Removed                                                                                                         0.4s 
 ✔ Container registryctl        Removed                                                                                                         0.3s 
 ✔ Container harbor-portal      Removed                                                                                                         0.4s 
 ✔ Container harbor-core        Removed                                                                                                         0.4s 
 ✔ Container registry           Removed                                                                                                         0.3s 
 ✔ Container redis              Removed                                                                                                         0.4s 
 ✔ Container harbor-db          Removed                                                                                                         0.4s 
 ✔ Container harbor-log         Removed                                                                                                        10.2s 
 ✔ Network harbor_harbor        Removed                                                                                                         0.1s 
[root@harbor-01 harbor]# 
[root@harbor-01 harbor]# docker-compose ps
WARN[0000] /root/harbor/docker-compose.yml: `version` is obsolete 
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS


启动harbor: "docker-compose up -d"
[root@harbor-01 harbor]# docker-compose -f docker-compose.yml up -d
WARN[0000] /root/harbor/docker-compose.yml: `version` is obsolete 
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                         0.0s 
 ✔ Container harbor-log         Started                                                                                                         0.1s 
 ✔ Container harbor-portal      Started                                                                                                         0.0s 
 ✔ Container registry           Started                                                                                                         0.0s 
 ✔ Container harbor-db          Started                                                                                                         0.0s 
 ✔ Container registryctl        Started                                                                                                         0.0s 
 ✔ Container redis              Started                                                                                                         0.0s 
 ✔ Container harbor-core        Started                                                                                                         0.1s 
 ✔ Container nginx              Started                                                                                                         0.0s 
 ✔ Container harbor-jobservice  Started                                                                                                         0.0s 


> docker-compose小知识:
> -f:指定使用的compose模板文件,默认为当前目录下的docker-compose.yaml文件,可以多次指定。
> -d:后台运行。
> -v:移除容器和网络,并且删除所有的数据卷,这对于彻底清理整个应用程序的运行环境非常有用。


4.1.4 修改harbor的web登录端口

修改harbor.yml文件:
[root@harbor-01 harbor]# vim harbor.yml
.........
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8080


然后将harbor修改的配置更新到 docker-compose.yml 文件:
[root@harbor-01 harbor]# ./prepare


防止容器进程没有权限读取生成的配置:
[root@harbor-01 harbor]# chmod -R 777 common
特别注意: 这里的common权限如果设置太小,可能会导致harbor启动后报错。


最后,重新启动harbor即可:
[root@harbor-01 harbor]# docker-compose -f docker-compose.yml up -d

4.1.5 harbor的日志

Harbor的日志路径:var/log/harbor

[root@harbor-01 harbor]# cat harbor.yml|grep log
  job_loggers:
  logger_sweeper_duration: 1 #days
log:
  # configs for logs in local storage
    # Log files are rotated log_rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
    # Log files are rotated only if they grow bigger than log_rotate_size bytes. If size is followed by k, the size is assumed to be in kilobytes.
    # The directory on your host that store log
    location: /var/log/harbor
[root@harbor-01 harbor]# ls /var/log/harbor/
core.log  jobservice.log  portal.log  postgresql.log  proxy.log  redis.log  registryctl.log  registry.log

如果说哪一个容器没起来,或者说有其他问题,可以到/var/log/harbor目录下看看日志。

4.1.6 harbor的备份

容器数据持久化目录:	/data 

[root@harbor-01 harbor]# cat harbor.yml | grep data_volume
data_volume: /data

该目录建议设置单独的分区,以保证存储空间的可用性、安全性,并且,这个数据目录建议做定期的备份。

4.1.7 修改harbor的登录密码

要是想修改harbor的登陆用户密码,则 最好在harbor web界面里直接修改,这样是最保险的!


如果是想通过修改harbor.yml文件来重置harbor用户密码,则不能单纯的修改后就执行"./prepare"和重启docker-compose,这样是不能修改harbor用户密码的!

这是因为harbor在这里用的是postgresql数据库,以pdkdf2算法保存的秘文密码!需要先进入"harbor-db"容器内部,执行相关postgresql命令行。而且postgresql的用户密码采用的是pbkdf2算法,需要提前计算好新密码的密钥值,pdkdf2算法需要"盐值","迭代次数"和密钥长度int型等,特别麻烦!!

所以,如果忘记harbor的web密码或者是admin密码需要重置,并且对于postgresql数据库 或者 pbkdf2算法操作不熟悉的话,建议删除data源数据的database,重新部署! 做法如下:
docker-compose down -v
rm -rf /data/database
vim harbor.yaml # 在这里重置或修改密码
docker-compose up -d
这样就可以使用重置后的新密码登陆harbor web界面了, 但是之前创建的用户和项目就都删除了。 这种情况最好适用于刚创建初期。


4.1.9 使用harbor仓库


注意一:

Docker 1.3.2版本开始,默认使用HTTPS与Docker registry交互,而Harbor默认设置的是http方式而不是https,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错:“http: server gave HTTP response to HTTPS client”。


解决办法: 如下,在/etc/docker/daemon.json文件里添加"insecure-registries"配置。

[root@harbor-01 ~]# cat /etc/docker/daemon.json 
{
   "registry-mirrors": ["https://42h8kzrh.mirror.aliyuncs.com"],
   "insecure-registries": ["192.168.217.136:8080"]
}

[root@harbor-01 harbor]# systemctl daemon-reload
[root@harbor-01 harbor]# systemctl restart docker


注意二:

harbor中的项目(或者说仓库组)分为 公开、私有 两种:

  • 公开:客户端的 push 操作需要先登录,pull不需要登录。
  • 私有:客户端的pull、push操作,均需要先登录。
登录密码的保存:

其实,登录的账号信息都保存到/root/.docker/config.json文件里了
[root@harbor-02 ~]# cat /etc/docker/daemon.json 
{
   "registry-mirrors": ["https://42h8kzrh.mirror.aliyuncs.com"],
   "insecure-registries": ["192.168.217.136:8080"]
}
[root@harbor-02 ~]# cat /root/.docker/config.json 
{
        "auths": {
                "192.168.217.136:8080": {
                        "auth": "YWRtaW46SGFyYm9yMTIzNDU="
                }
        }
}
[root@harbor-02 ~]# 
[root@harbor-02 ~]# echo "YWRtaW46SGFyYm9yMTIzNDU=" | base64 --decode
admin:Harbor12345[

只要/root/.docker/config.json里的信息不删除,后续再次登录的时候,就不用输入用户名和密码了。


4.1.10 安全相关设置

  • 登录Harbor web界面,在"系统管理"->“配置管理”->“认证模式”->"允许自注册"这一项的对勾去掉,则登录的时候就不会有"用户注册"这一功能了。
  • 可以在"配置管理"这一项进行认证模式,邮箱,标签等设置。


4.2 https 方式部署harbor


4.2.1 清除http登录相关信息

清除http登录相关信息:
[root@harbor-01 ~]# vim /etc/docker/daemon.json 
[root@harbor-01 ~]# rm -rf /root/.docker/config.json 


重启:
[root@harbor-01 ~]# systemctl daemon-reload
[root@harbor-01 ~]# systemctl restart docker


验证,可以看到已经需要使用https登录了:
[root@harbor-01 ~]# docker pull 192.168.217.136:8080/test02/registry-photon:v2.10.1
Error response from daemon: Get "https://192.168.217.136:8080/v2/": http: server gave HTTP response to HTTPS client


4.2.2 生成ssl证书

[root@harbor-01 ssl]# vim gencert.sh 
[root@harbor-01 ssl]# ./gencert.sh eee.harbor-test.com 192.168.217.136

[root@harbor-01 ssl]# ls 
eee.harbor-test.com  gencert.sh
[root@harbor-01 ssl]# ls eee.harbor-test.com/
server.crt  server.key

gencert.sh 脚本内容见这里。



4.2.3 修改harbor的配置文件 && 重启

修改配置文件,主要是放开https的参数,指定证书路径:
[root@harbor-01 ssl]# cd ../harbor
[root@harbor-01 harbor]# vim harbor.yml
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /root/ssl/eee.harbor-test.com/server.crt
  private_key: /root/ssl/eee.harbor-test.com/server.key


接着,执行prepare脚本,将harbor修改的配置更新到 docker-compose.yml 文件:
[root@harbor-01 harbor]# ./prepare 


重启:
[root@harbor-01 harbor]# docker-compose down -v
[root@harbor-01 harbor]# docker-compose -f docker-compose.yml up -d



4.2.4 访问测试

使用harbor本机访问测试:

[root@harbor-01 ~]# docker pull eee.harbor-test.com/test02/registry-photon:v2.10.1
Error response from daemon: Get "https://eee.harbor-test.com/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority
[root@harbor-01 ~]# 
[root@harbor-01 ~]# docker login eee.harbor-test.com
Username: admin
Password: 
Error response from daemon: Get "https://eee.harbor-test.com/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority

如上,出现“tls: failed to verify certificate: x509: certificate signed by unknown authority”报错,此种情况多发生在自签名的证书,报错含义是签发证书机构未经认证,无法识别。



解决办法:
[root@harbor-01 ~]# chmod 644 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
[root@harbor-01 ~]# cat /root/ssl/eee.harbor-test.com/server.crt  >> /etc/pki/tls/certs/ca-bundle.crt
[root@harbor-01 ~]# chmod 444 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

由于证书是docker的daemon需要用到的,所以需要重启docker服务,进而也要重启docker-compose
[root@harbor-01 ~]# systemctl restart docker
[root@harbor-01 ~]# cd harbor
[root@harbor-01 harbor]# docker-compose down -v
[root@harbor-01 harbor]# docker-compose -f docker-compose.yml up -d



重新访问,可以看到已经访问成功了:
[root@harbor-01 harbor]# docker pull eee.harbor-test.com/test02/registry-photon:v2.10.1
v2.10.1: Pulling from test02/registry-photon
Digest: sha256:6b88b12beded26259cd040cfbec1ea8b17c49340412073381bf4abb9c0671a40
Status: Downloaded newer image for eee.harbor-test.com/test02/registry-photon:v2.10.1
eee.harbor-test.com/test02/registry-photon:v2.10.1
[root@harbor-01 harbor]# 
[root@harbor-01 harbor]# docker login eee.harbor-test.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/#credentials-store

Login Succeeded

使用远程客户机访问测试:

首先很重要的一步,这一步极其关键!一定不要忘记操作!!
就是需要将harbor服务端生成的CA证书拷贝到每个远程客户机上,其实主要是需要那个.crt文件。

拷贝:
root@harbor-01 ~]# scp -r ssl/ 192.168.217.135:/root/

[root@harbor-02 ~]# chmod 644 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
[root@harbor-02 ~]# cat /root/ssl/eee.harbor-test.com/server.crt  >> /etc/pki/tls/certs/ca-bundle.crt
[root@harbor-02 ~]# chmod 444 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

重启docker:
[root@harbor-02 ~]# systemctl restart docker

访问测试:
[root@harbor-02 ~]# docker pull eee.harbor-test.com/test02/registry-photon:v2.10.1
v2.10.1: Pulling from test02/registry-photon
Digest: sha256:6b88b12beded26259cd040cfbec1ea8b17c49340412073381bf4abb9c0671a40
Status: Downloaded newer image for eee.harbor-test.com/test02/registry-photon:v2.10.1
eee.harbor-test.com/test02/registry-photon:v2.10.1


浏览器访问测试:
在这里插入图片描述


5 问题总结


5.1 linux内核版本问题

一般来说,安装docker的操作系统内核推荐3.10.0-1127.el7.x86_64及以上版本就可以,见dokcer官网。但有网友列出以下问题,作为参考吧。

部署harbor的时候(或者说,我们使用docker的时候),要首先查看下本机的docker版本,如果docker版本在18.90.1以上,建议升级内核版本到4.4.x 以上,否则可能会遇到一些问题,尽管可能性较低。



已知可能会遇到的问题:
1)harbor部署Harbor正常启动,端口正常监听,防火墙也已关闭,但是通过 http://ip:80 访问不了harbor,并且/var/log/harbor目录下没有任何日志产生!! 使用" telnet ip 80"查看发现不通或者闪退!!!

2)高版本的 docker(1.13 以后) 启用了3.10 kernel实验支持的 kernel memory account 功能(无法关闭),当docker节点压力大 (如频繁启动和停止容器) 时会导致 cgroup memory leak;

3)CentOS 7.x 系统自带的3.10.x内核存在一些Bugs,导致运行的Docker、Kubernetes不稳定


5.2 升级linux内核

[root@harbor-01 ~]# uname  -r
3.10.0-862.el7.x86_64
      
[root@harbor-01 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
      
安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuentry 中是否包含 initrd16 配置,如果没有,再安装一次!
[root@harbor-01 ~]# yum --enablerepo=elrepo-kernel install -y kernel-lt
      
设置开机从新内核启动
[root@harbor-01 ~]# grub2-set-default 0
      
重启机器
[root@harbor-01 ~]# init 6
      
安装内核源文件(在升级完内核并重启机器后执行,也可以不用执行这一步。可选):
[root@harbor-01 ~]# yum --enablerepo=elrepo-kernel install kernel-lt-devel-$(uname -r) kernel-lt-headers-$(uname -r)
      
[root@harbor-01 ~]# uname -r
4.4.180-2.el7.elrepo.x86_64

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

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

相关文章

快速探索随机树-RRT

文章目录 简介原理算法运动规划的变体和改进简介 快速探索随机树(RRT)是一种算法,旨在通过随机构建空间填充树来有效搜索非凸高维空间。该树是从搜索空间随机抽取的样本中逐步构建的,并且本质上偏向于向问题的大型未搜索区域生长。RRT 由 Steven M. LaValle 和 James J. K…

数据库SQL语言实战(一)

目录 创建SQL表 题目一 题目二 题目三 插入数据 题目一 题目二 题目三 总结 创建SQL表 题目一 创建学生信息表(学生编号、姓名、性别、年龄、出生日期、院系名称、班级): test1_student:sid char 12 not null、nam…

Unity Shader之数学篇

一、坐标系 1、二维笛卡尔坐标系 屏幕坐标系是二维笛卡尔坐标系,OpenGL的屏幕坐标系原点在左下角,DirectX的屏幕坐标系原点在左上角。 2、三维笛卡尔坐标系 三维笛卡尔坐标系要区分是左手坐标系还是右手坐标系。 左手坐标系:举起你的左手…

3.Burp Suite 入门篇 —— 修改请求

目录 前言 官网注册 Burp 浏览器访问漏洞页面 登陆购物网站账号 修改请求包 漏洞挖掘 前言 本篇文章会教你如何用 Burp Proxy 修改截获的请求。 修改请求包是为了通过网站程序规定之外的方式请求,然后对比查看响应内容的变化,判断是否有漏洞存在…

Wpf 使用 Prism 实战开发Day20

备忘录功能页面完善以及优化 备忘录功能基本跟前一章节的待办事项差不多一至&#xff0c;就不再做过多的笔述了 一.备忘录功能完整页面源码 MemoView.xaml <UserControl x:Class"MyToDo.Views.MemoView"xmlns"http://schemas.microsoft.com/winfx/2006/xam…

src挖掘 | 未授权访问+密码重置

0x01系统初探 通过fofa对大学进行搜索 fofa:host"edu.cn" && status_code"200" 在随意的翻阅查看时&#xff0c;发现访问xxx.edu.cn登录页面会优先访问登录后的页面&#xff0c;再跳转至登录页面。盲猜应该是前端校验&#xff0c;可以通过抓包拦…

Qt5 编译oracle数据库驱动

库文件 1、Qt源码目录&#xff1a;D:\Qt5\5.15.2\Src\qtbase\src\plugins\sqldrivers\oci 2、oracle客户端SDK: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载各版本中的如下压缩包&#xff0c;一定要版本相同的 将两个压缩包…

【基础物理实验】【AFM虚拟实验】基于AFM的物质表面微观结构及力学性质表征仿真实验(上)【北京航空航天大学】

基于AFM的物质表面微观结构及力学性质表征仿真实验 说明&#xff1a; 本次实验为本科生《基础物理实验》课程中的虚拟实验部分&#xff0c;在虚拟实验平台中进行。 一、实验目的&#xff1a; 1. 掌握AFM的基本成像原理及系统结构&#xff1b; 2. 掌握AFM的基本操作技巧及操…

【Modelsim】保持波形格式重编译and波形的保存与查看

文章目录 保持原波形格式重编译波形的保持与查看保存波形打开工程查看波形 保持原波形格式重编译 Modelsim 仿真设置好波形格式后&#xff0c;若需要修改代码并保持原波形格式重新查看波形&#xff0c;只需将文件重新编译后仿真即可。 1.修改代码后Project页面的代码状态变成…

特氟龙(PFA)实验室器具有哪些?

PFA 是被称为塑料王&#xff0c;具有出众的化学耐受性&#xff0c;并且可在出色的温度范围内执行工作。 PFA 呈半透明&#xff0c;柔韧&#xff0c;并且由于其高密度重量有点重。PFA 具有惰性和低粘合性&#xff0c;溶出物和痕量金属含量较低。它具有较宽的含氟聚合物温度范围…

3.00 版本来了!DolphinDB V2.00.12 V3.00.0 正式发布!

一文带你了解 DolphinDB 全新版本升级&#xff01; 本次更新后&#xff0c;3.00.0版本将成为 DolphinDB 的最新版&#xff0c;2.00.12版本变更为稳定版&#xff0c;此前发布的1.30.23版本将成为1.30系列的最后一个版本。接下来&#xff0c;带大家一起看看 DolphinDB V2.00.12 …

Directory Monitor:全方位监控文件系统变动的专业利器

目录 一、软件介绍 二、软件功能 三、软件特点 四、安装说明 五、使用说明 一、软件介绍 Directory Monitor是一款强大易用的实时文件系统监视工具&#xff0c;它由Michael Humpa开发&#xff0c;专为满足用户监控特定目录下文件和子目录变化的需求。无论是为了保障系统安…

[蓝桥杯 2019 国 B] 解谜游戏

[蓝桥杯 2019 国 B] 解谜游戏 题目背景 题目描述 小明正在玩一款解谜游戏。谜题由 24 24 24 根塑料棒组成&#xff0c;其中黄色塑料棒 4 4 4 根&#xff0c;红色 8 8 8 根&#xff0c;绿色 12 12 12 根 (后面用 Y 表示黄色、R 表示红色、G 表示绿色)。初始时这些塑料棒排…

游戏实践:扫雷

一.游戏介绍 虽然很多人玩过这个游戏&#xff0c;但还是介绍一下。在下面的格子里&#xff0c;埋的有10颗雷&#xff0c;我们通过鼠标点击的方式&#xff0c;点出你认为不是雷的地方&#xff0c;等到把所有没有雷的格子点完之后&#xff0c;及视为游戏胜利。 上面的数字的意思…

租用马来西亚服务器:稳定高效的网络选择

马来西亚首都是吉隆坡。作为一个新兴的多元化经济国家&#xff0c;也属于亚洲四小龙之一。地理位置优越&#xff0c;中间隔着南中国海。一部分是北接泰国的位于马来半岛的西马来西亚&#xff0c;另一部分则是东马来西亚&#xff0c;在婆罗洲岛的北部。这种地理位置有利于促进该…

Qt | 事件第一节(QApplication、QGuiApplication、QCoreApplication)

一、QApplication、QGuiApplication、QCoreApplication 简介 1、继承关系见下图,其中左侧为顶级父类 2、一个程序中只能有一个 QCoreApplication 及其子类的对象。 3、QCoreApplication:主要提供无 GUI 程序的事件循环。 4、QGuiApplication:用于管理 GUI 程序的控制流和…

LangChain学习笔记与样程

LangChain 是一个开源的机器学习工具库&#xff0c;专门用于构建和部署基于语言的应用程序。这个库提供了一系列工具和接口&#xff0c;使开发者能够轻松地整合和使用大型语言模型&#xff0c;例如 OpenAI 提供的 GPT。LangChain 的核心特点包括模块化设计、灵活性和易用性&…

卷积神经网络结构组成与解释

卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构&#xff0c;网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积&#xff08;元素相乘再求和&#xff09;的操作。 1. 卷积层 常见的卷积操作如下&#x…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现…

Linux——信号量与基于环形队列的生产者消费者模型

目录 前言 一、信号量 二、信号量的接口 1.初始化 2.销毁 3.申请信号量 4. 释放信号量 三、基于环形队列的生产者消费者模型 1.环形队列的理解 2.生产者消费者的设计 3.单消费者单生产者环形队列的实现 4.多消费者多生产者环形队列的实现 前言 之前&#xff0c;…