Harbor仓库部署安装、向仓库推送,拉取镜像、容器的基础使用(超级详细,非常透彻)

Harbor 环境搭建笔记
作为新手,在搭建 Harbor 环境的过程中,我参考了大量资料,学到了很多宝贵的知识,但也遇到了不少挑战。虽然目前这套环境仅在测试环境中成功运行,但仍有许多细节需要完善。记录这些经验不仅有助于个人学习,也希望能与技术爱好者们共同交流,欢迎各位大佬指出任何不准确之处。

目录

安装Harbor仓库

1、安装Harbor前的基本思路和环境

2、安装Docker-Compose服务

3、部署Harbor服务

3.1 下载Harbor软件包(源码安装)

3.2 解压

3.3 修改配置文件

3.4 创建并且启动Docker容器

3.5 测试

4、重新加载配置文件

Harbor仓库基础使用

使用 HTTP 发布镜像到 Harbor

①添加用户构建项目

②发布镜像到Harbor

③从Harbor中拉取镜像

容器运行的基础使用

远程主机下载镜像


一、安装Harbor仓库

1.安装Harbor前的基本思路和环境

操作系统:确保你使用的是支持的CentOS版本(例如7.x或8.x)。Harbor官方建议使用64位的操作系统。
登录的用户:root
使用环境:Centos7
Docker Engine:Harbor是基于容器运行的,所以你需要先安装Docker。可以参考我写的博客来进行安装部署。安装docker并拉取镜像超详细步骤(复制粘贴都可以)_飞牛docker拉取镜像教程分享-CSDN博客
Docker Compose:用于管理多容器应用。Harbor需要Docker Compose来启动其组件。下面会有我写的详细操作步骤。你也可以从Standalone | Docker Docs获取安装指南。

节点IP所需服务
Harbor服务器192.168.232.60docker-ce、docker-compose、harbor-offline-v1.2.2
Client192.168.232.61docker-ce

Docker-CE:Docker CE 是 Docker 公司推出的免费版本的 Docker 引擎

Docker-Compose:是 Docker 官方提供的一个工具,用于定义和运行多个容器化应用程序的工具。通过一个单独的 docker-compose.yml 配置文件,可以定义应用程序的服务、网络、卷等信息,然后使用 docker-compose 命令进行统一的管理和操作

Harbor Offline Installer v1.2.2:Harbor 是一个企业级的 Docker 镜像仓库管理系统,提供了图形管理界面、安全访问控制、LDAP/AD 集成等功能,用于存储、管理和分发 Docker 镜像

1.1 安装docker-ce

安装Harbor仓库时,docker环境是必须的;

您的虚拟机里有docker-ce的话可以继续往后操作,如果没有安装docker-ce的可以参考一下我的这篇博客来进行安装部署。

安装docker并拉取镜像超详细步骤(复制粘贴都可以)_docker镜像-CSDN博客

1.2 关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0

1.3 服务器进行改名,方便区分

[root@localhost ~]# hostnamectl set-hostname harbor
[root@localhost ~]# bash
[root@harbor ~]# 

2.安装Docker-Compose服务

要下载并安装 Docker Compose 独立版,请运行:

curl -SL https://github.com/docker/compose/releases/download/v2.32.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

将可执行权限应用于安装目标路径中的独立二进制文件。

chmod +x /usr/local/bin/docker-compose

使用 测试和执行 Docker Compose 命令。

[root@harbor ~]# ls /usr/local/bin/
docker-compose
[root@harbor bin]# docker-compose --version
Docker Compose version v2.32.0
[root@harbor bin]# ll
总用量 63164
-rwxr-xr-x. 1 root root 64678453 12月 26 13:41 docker-compose

3.部署Harbor服务

3.1 下载Harbor软件包(源码安装)

https://github.com/goharbor/harbor/releases/download/v2.12.1/harbor-offline-installer-v2.12.1.tgz

下载完成后,将下载好的包传入你的虚拟机中

想更加详细的了解如何安装harbor服务的请看官方文档,里面包含如何在线,离线下载

Harbor 文档 |下载 Harbor 安装程序

3.2 解压

[root@harbor ~]# tar -zxvf harbor-offline-installer-v2.12.1.tgz 
harbor/harbor.v2.12.1.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@harbor ~]# ls
anaconda-ks.cfg  harbor  harbor-offline-installer-v2.12.1.tgz

将解压包移动到/usr/local目录下

mv harbor /usr/local/

或者你也可以这样写

tar -zxvf harbor-offline-installer-v2.12.1.tgz -C /usr/local/

这条命令会直接将软件包解压到/usr/local目录下,无需使用mv命令进行移动

3.3 修改配置文件

harbor.yml.tmp 文件是 Harbor 安装包中提供的一个模板文件,它包含了启动和配置 Harbor 所需的所有设置项。

[root@harbor ~]# cd /usr/local/harbor/
[root@harbor harbor]# cp -i harbor.yml.tmpl harbor.yml

将 harbor.yml.tmp 复制并重命名为 harbor.yml 不仅仅是为了进行备份,还因为Harbor 的安装和准备脚本(如 prepare 和 install.sh)会查找名为 harbor.yml 的文件来进行配置读取和处理。如果你没有将其重命名为 harbor.yml,这些脚本将无法找到正确的配置文件,从而导致部署错误或失败。

编辑harbor.yml文件

[root@harbor harbor]# vi harbor.yml

再往下滑一点:

3.4 创建并且启动Docker容器

如果你已经编辑好了 harbor.yml 文件,接下来可以运行以下命令来准备 Harbor:

[root@harbor harbor]# ./prepare

./prepare 脚本是 Harbor 安装过程中的一个关键步骤,它负责根据 harbor.yml 文件中定义的配置来生成或更新 Harbor 所需的各种配置文件。

执行安装脚本:

[root@harbor harbor]# ./install.sh

主要功能:

1、创建并启动 Docker 容器:./install.sh 脚本会使用之前通过 ./prepare 生成的 docker-compose.yml 文件,来创建并启动所有必要的 Docker 容器,这些容器构成了完整的 Harbor 系统。
2、初始化数据库和服务:对于首次安装或升级,该脚本会初始化或更新所需的数据库表结构,并为其他服务(如核心服务、作业服务等)做准备。
3、设置管理员密码:如果这是第一次安装 Harbor,./install.sh 会根据 harbor.yml 中的配置设置初始管理员账户的密码。
4、加载默认配置和资源:这可能包括但不限于设置默认策略、添加系统用户、配置项目等。
验证安装状态:在完成所有操作后,脚本可能会检查各个服务的状态,以确保它们都已成功启动。

3.5 测试

浏览器搜索  192.168.232.60:8083

4.重新加载配置文件

如何在修改完配置文件后重新加载成功?

案例目标:

         我要将端口号8083修改成85,应该怎么做才能成功重新加载配置文件呢?

案例实施:

1、首先我们修改harbor.yml配置文件

[root@harbor harbor]# vi harbor.yml

2、修改完成后我们先执行./prepare来重新加载配置文件

[root@harbor harbor]# ./prepare 

./prepare 脚本会根据最新的 harbor.yml 文件生成或更新必要的配置文件。这一步非常重要,因为它确保了所有内部组件和服务的配置都与你修改后的设置相匹配。

3、停止现有的容器

[root@harbor harbor]# docker-compose down
[+] Running 10/10✔ Container nginx              Removed                                                                                            4.3s ✔ Container registryctl        Removed                                                                                            3.8s ✔ Container harbor-jobservice  Removed                                                                                            3.8s ✔ Container harbor-core        Removed                                                                                            0.8s ✔ Container harbor-portal      Removed                                                                                            1.2s ✔ Container harbor-db          Removed                                                                                            0.8s ✔ Container registry           Removed                                                                                            0.4s ✔ Container redis              Removed                                                                                            0.6s ✔ Container harbor-log         Removed                                                                                           10.3s ✔ Network harbor_harbor        Removed                                                                                            0.1s 

为了使新配置生效,你需要先停止当前正在运行的 Harbor 容器。这样可以避免旧配置继续影响系统。

如果你只想停止特定的服务而不是全部服务,可以使用 -s 参数指定服务名称。

4、启动 Harbor

[root@harbor harbor]# docker-compose up -d
[+] Running 10/10? Network harbor_harbor        Created                                                                                            0.2s ? Container harbor-log         Started                                                                                            2.8s ? Container registry           Started                                                                                           10.9s ? Container registryctl        Started                                                                                           10.9s ? Container harbor-db          Started                                                                                           10.9s ? Container harbor-portal      Started                                                                                           10.9s ? Container redis              Started                                                                                           10.9s ? Container harbor-core        Started                                                                                           12.6s ? Container nginx              Started                                                                                           21.1s ? Container harbor-jobservice  Started                                                                                           21.1s 

使用新的配置文件重新启动 Harbor。docker-compose up -d 命令会在后台启动所有定义的服务,并根据需要创建和拉取镜像。

5、验证配置是否生效

确认新配置已经成功应用并且 Harbor 正常工作。你可以通过访问 Harbor 的 Web 界面、检查日志文件或测试特定功能来验证这一点。

1.访问harbor的web界面

192.168.232.60:85

登录成功

2.检查日志文件或测试特定功能

[root@harbor harbor]# docker ps  # 查看所有运行中的容器状态
[root@harbor harbor]# docker logs <container_name>  # 查看特定容器的日志输出

二、Harbor仓库基础使用

Harbor作为镜像仓库,主要的交互方式就是将镜像上传到Harbor,以及从Harbor上下载拉取指定版本的镜像。

  • 在传输镜像前,可以先使用Harbor提供的权限管理,将项目设置为私有项目,并对不同用户设置不同角色,从而更方便管理镜像。

如果你的 Harbor 仓库配置为使用 HTTP 而不是 HTTPS,推送镜像的过程基本相同,但有一些特别需要注意的地方,特别是关于 Docker 的安全设置。下面是具体步骤以及注意事项:

使用 HTTP 发布镜像到 Harbor

 确保 Docker 配置允许不安全的注册表

默认情况下,Docker 客户端不允许与未使用 HTTPS 的 Docker 注册表通信,因为这被认为是不安全的。为了允许通过 HTTP 推送镜像,你需要修改 Docker 守护进程的配置文件来添加你的 Harbor 作为“不安全的注册表”。

1.1 编辑 Docker 配置文件:
在大多数 Linux 系统上,Docker 配置文件位于 /etc/docker/daemon.json。如果该文件不存在,请创建它。

{"insecure-registries" : ["your-harbor-domain:port"]
}

将 your-harbor-domain 替换为你的 Harbor 实例的域名或 IP 地址,并将 port 替换为实际使用的 HTTP 端口号(例如 80 或你自定义的其他端口)。

[root@harbor ~]# vi /etc/docker/daemon.json
[root@harbor ~]# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://vi0gw6fg.mirror.aliyuncs.com",           "https://docker.m.daocloud.io",          "https://docker.mirrors.sjtug.sjtu.edu.cn" ],"insecure-registries": ["192.168.232.60:85"]
}

没有配置阿里云加速器的,可以参考我的这篇博客,里面有非常详细的教程

安装docker并拉取镜像超详细步骤(复制粘贴都可以)_docker镜像-CSDN博客

1.2 重启 Docker 服务: 修改配置文件后,记得重启 Docker 服务以使更改生效。

[root@harbor ~]# systemctl restart docker

2. 登录到 Harbor

由于我们现在使用的是 HTTP 协议,所以可以直接使用以下命令登录:

docker login http://192.168.232.60:85

系统会提示你输入用户名和密码。成功登录后,你会看到“Login Succeeded”的消息。

或者你也可以这样登录

docker login -uadmin -pHarbor12345 192.168.232.60:85

我也不知道为什么http方式登录不进去,这里跪求各位大佬好心帮助。。。

[root@harbor harbor]# docker login -uadmin -pHarbor12345 192.168.232.60
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.232.60/v2/": dial tcp 192.168.232.60:443: connect: connection refused
[root@harbor harbor]# docker login -uadmin -pHarbor12345 192.168.232.60:85
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "http://192.168.232.60:85/v2/": Get "https://192.168.232.60:85/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry": http: server gave HTTP response to HTTPS client

①添加用户构建项目

1、创建用户

系统管理-用户管理-创建用户

创建成功后:

2、构建项目(设置为私有)

3、给项目追加用户

②发布镜像到Harbor

1、首先设置登录仓库信息

docker login -u 用户名 -p 密码 Harbor地址
[root@harbor harbor]# docker login -uadmin -pHarbor12345 192.168.232.60:85

2、标记镜像

在推送之前,你需要为镜像打上正确的标签,以便它能够被推送到指定的 Harbor 项目中。标签应该包含 Harbor 的域名、项目名称以及镜像名称和标签。

docker tag <local-image>:<tag> your-harbor-domain/<project>/<image-name>:<tag>

例如,如果你有一个名为 hello-world 的镜像,并希望将其推送到 my_test1 项目中,标签可以是:

 docker tag hello-world:latest 192.168.232.60:85/my_test1/hello-world:latest 

3、推送镜像到 Harbor

使用 docker push 命令将标记好的镜像推送到 Harbor 仓库。

docker push your-harbor-domain/<project>/<image-name>:<tag>

继续上面的例子:

docker push 192.168.232.60:85/my_test1/hello-world:latest

4、验证镜像是否成功推送

登录到 Harbor 的 Web 界面,导航到相应的项目页面,检查镜像列表以确认镜像已经成功上传。

也可以使用 Docker CLI 来验证:

docker pull your-harbor-domain/<project>/<image-name>:<tag>

③从Harbor中拉取镜像

1、拉取仓库镜像

成功登录之后,你可以使用 docker pull 命令来拉取所需的镜像。确保你使用的镜像名称包含完整的仓库路径和标签。

docker pull 192.168.232.60:85/my_test1/hello-world:latest

2、验证镜像

拉取完成后,你可以使用 docker images 命令列出本地存储的所有镜像,以确认新拉取的镜像是否已成功下载。

docker images

3、运行容器

最后,你可以启动一个容器来测试拉取的镜像是否正常工作。

docker run --rm -it 192.168.232.60:85/my_test1/hello-world:latest

三、容器运行的基础使用

1、 基本运行命令

最简单的运行命令如下:

docker run --rm -it 192.168.232.60:85/my_test1/hello-world:latest

--rm:在容器退出时自动删除容器。
-it:交互模式,保持标准输入输出打开。

2、指定端口映射

如果你想将容器内的端口映射到主机上的特定端口,可以使用 -p 参数。例如,将容器的 8080 端口映射到主机的 8080 端口:

docker run -d -p 8080:8080 192.168.232.60:85/my_test1/hello-world:latest

-d:后台运行容器。
-p:指定端口映射,格式为 host_port:container_port。

3、挂载卷

如果你需要将主机上的目录或文件挂载到容器内,可以使用 -v 参数。例如,将主机的 /data 目录挂载到容器的 /app/data 目录:

docker run -d -v /data:/app/data 192.168.232.60:85/my_test1/hello-world:latest

4、设置环境变量

如果需要在容器启动时设置环境变量,可以使用 -e 参数。例如,设置 APP_ENV=production:

docker run -d -e APP_ENV=production 192.168.232.60:85/my_test1/hello-world:latest

5、命名容器

给容器指定一个名称可以方便管理和引用,使用 --name 参数。例如,将容器命名为 lifeng0577

docker run -d --name lifeng0577 192.168.232.60:85/my_test1/hello-world:latest

6、查看容器日志

如果你想查看正在运行的容器的日志输出,可以使用 docker logs 命令:

docker logs hello-world

7、停止和移除容器

当不再需要运行的容器时,可以使用以下命令停止并移除它:

 docker stop myapp-containerdocker rm myapp-container

或者,如果你之前使用了 --rm 选项,容器会在退出时自动被删除。

四、远程主机下载镜像

问题:

     如何使用另外一台虚拟机,来下载本次实验机器搭建仓库中的镜像呢?

任务实施:

要在另一台虚拟机上下载(拉取)来自这台虚拟机上 Harbor 仓库的镜像,你需要确保以下几点:

1.网络可达性:两台虚拟机之间的网络是连通的,并且目标虚拟机上的 Harbor 服务可以被源虚拟机访问。
2.Harbor 配置正确:Harbor 注册表配置正确,并且可以通过网络访问。
3.Docker 客户端配置:源虚拟机上的 Docker 客户端已配置为信任 Harbor 的证书(如果是 HTTPS),或配置了不安全注册表(如果是 HTTP)。

1、登录 Harbor

在另一台虚拟机上安装并配置 Docker 后,使用 docker login 命令登录到 Harbor。请替换 <your_username> 和 <your_password> 为实际的用户名和密码。

echo "<your_password>" | docker login --username <your_username> --password-stdin http://192.168.232.60:85

如果 Harbor 使用 HTTPS,则替换 URL 为 https://192.168.232.60 并确保端口号正确。

2、配置 Docker 客户端(仅限 HTTP)

如果你使用的是 HTTP 而不是 HTTPS,需要配置 Docker 客户端以信任这个不安全的注册表。编辑 /etc/docker/daemon.json 文件,添加 Harbor 的地址到 insecure-registries 列表中,并重启 Docker 服务。

{"insecure-registries": ["192.168.232.60:85"]
}

然后重启 Docker 服务以应用更改:

systemctl restart docker

3、拉取镜像

成功登录后,使用 docker pull 命令从 Harbor 拉取所需的镜像。请根据你的实际需求替换 <namespace>、<repository> 和 <tag>。

docker pull 192.168.232.60:85/<namespace>/<repository>:<tag>

例如,如果你想拉取一个名为 hello-world 的镜像,并且它位于 my_test1 命名空间中,标签为 latest,你可以这样操作:

docker pull 192.168.232.60:85/my_test1/hello-world:latest

4、验证镜像

拉取完成后,你可以使用 docker images 命令来列出本地存储的所有镜像,以确认新拉取的镜像是否已成功下载。

docker images

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

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

相关文章

活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动&#xff0c;了解 Azure 如何为将工作负载…

PP模块部分BAPI函数

工艺路线 BAPI_ROUTING_CREATE 创建工艺路线 BAPI_ROUTING_EXISTENCE_CHECK 检查工艺路线是否存在 参考操作集 BAPI_REFSETOFOPERATIONS_CREATE 创建参考操作集 BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考操作集是否存在 计划订单 BAPI_PLANNEDORDER_CREATE 创建计划订单 BAPI…

nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益

–https://doi.org/10.1038/s41576-024-00796-w Genomic landscape of cancer in racially and ethnically diverse populations 研究团队和单位 Ulrike Peters–Public Health Sciences Division, Fred Hutchinson Cancer Center Claire E. Thomas–Public Health Scienc…

两个等号和三个等号(待查资料)

1太癫了&#xff0c;居然时要才行&#xff0c;都不行 2. 三等号的结果 .。。。。毁灭吧

SpringCloud源码分析-Gateway

Gateway核心原理&#xff0c;请求经过一系列的责任链最后到达服务端。

大模型—Ollama将Python函数作为参数传递,增强函数调用功能

Ollama将Python函数作为参数传递,增强函数调用功能 在最新版本的Ollama Python库中,现在可以将函数作为工具提供。该库现在也全面支持类型提示,并添加了新的例子。 开始使用 首先安装或升级Ollama Python库: pip install -U ollama将Python函数作为工具传递 定义一个Py…

智能商业分析 Quick BI

Quick BI 是阿里云提供的一款智能商业分析&#xff08;BI&#xff09;工具&#xff0c;旨在帮助企业快速获取业务洞察、优化决策过程、提升数据分析效率。通过强大的数据可视化和分析功能&#xff0c;Quick BI 能够帮助用户轻松连接多种数据源、创建多维度的报表和仪表盘&#…

折旧后将成本中心折旧费调整到订单中

背景&#xff1a;设备原作为通用设备&#xff0c;按成本中心折旧&#xff0c;在12月月结正常折旧后才明确为专用设备&#xff0c;需要按内部订单折旧。 问&#xff1a;折旧能不能冲销。 回复&#xff1a; 在SAP中&#xff0c;折旧凭证是无法直接冲销的。如果折旧计提有误&#…

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能

form-create-designer 是一款开源的低代码表单设计器&#xff0c;通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单&#xff0c;提高开发者对表单的开发效率&#xff0c;节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 项目采…

Qt之简易音视频播放器设计(十五)

Qt开发 系列文章 - MediaPlayer&#xff08;十五&#xff09; 目录 前言 一、QMediaPlayer 二、实现方式 1.添加multimedia 2.创建类vedioplayer 3.UI设计 4.用户使用 5.效果演示 总结 前言 利用Qt进行音视频播放器设计&#xff0c;首先比较方便使用的是Qt自带的音视…

OpenCV-Python实战(13)——图像轮廓

一、找轮廓 cv2.findContours() contours,hierarchy cv2.findContours(image*,mode*,method*) contours&#xff1a;找到的所有轮廓数组&#xff0c;数组内的元素为轮廓像素点坐标。 hierarchy&#xff1a;轮廓间的层次关系。 image&#xff1a;二值图像&#xff08;cv2.t…

UVM:testbench architecture

uvm介绍 验证计划 验证平台 uvm phase uvm 仿真实例 uvm消息机制 父类和子类 uvm elements uvm component uvm message Uvm_info中小于verbosity数值的信息打印出来。

框架(Mybatis配置日志)

mybatis配置日志输出 先导入日志依赖 <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency> 编写log4j.properties配置文件 # Root logger option log4j.rootLogge…

期权懂|期权都有哪些存在的风险因素?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 期权都有哪些存在的风险因素&#xff1f; 一、市场价格波动风险 期权的价格受到多种因素的影响&#xff0c;包括标的资产价格、市场利率、波动率等。 这些因素的变化可能导致期…

2025跨年倒计时

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2025年跨年倒计时</title><style>/* 页…

多模态论文笔记——Coca

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型Coca&#xff0c;在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…

大型模型推理加速入门

一 推理加速基础 1. 了解基本概念与术语 首先需要了解关于大模型的一些基本的历史发展&#xff0c;概念和术语&#xff0c;不需要全部看懂&#xff0c;只需要掌握大概情况&#xff0c;可以通过下面这篇文章进行&#xff1a; 大模型入门基本概念&#xff0c;术语 2. 了解Tra…

python实现自动登录12306抢票 -- selenium

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码&#xff0c;但是都不是最新的&#xff0c;我也是从网上找别人的帖子&#xff0c;看B站视频&…

edeg插件/扩展推荐:助力生活工作

WeTab 此插件在我看来有2个作用 1.改变edeg的主页布局和样式,使其更加精简,无广告 2.提供付费webtab Ai(底层是chatGpt) 沉浸式翻译 此插件可翻译网页的内容 假设我们浏览github 翻译前 翻译后 Better Ruler 可以对网页的距离进行测量 适合写前端的小伙伴 用法示例:

doris:基于 Arrow Flight SQL 的高速数据传输链路

Doris 基于 Arrow Flight SQL 协议实现了高速数据链路&#xff0c;支持多种语言使用 SQL 从 Doris 高速读取大批量数据。 用途​ 从 Doris 加载大批量数据到其他组件&#xff0c;如 Python/Java/Spark/Flink&#xff0c;可以使用基于 Arrow Flight SQL 的 ADBC/JDBC 替代过去…