Docker Harbor

news/2025/2/11 1:31:33/

目录

一、Docker Harbor概述

1、Harbor的优势

2、Harbor知识点

3、Docker私有仓库架构

二、Harbor构建Docker私有仓库

1、环境配置

2、案例需求

3、部署docker-compose服务

4、部署harbor服务

5、启动harbor

① 访问

② 添加项目并填写项目名称

③ 通过127.0.0.1来登陆和推送镜像

④ 维护管理Harbor

⑤ 创建Harbor用户

⑤ 移除 Harbor 服务容器同时保留镜像数据/数据库

Docker Harbor概述

1、Harbor的优势

2、Harbor知识点

3、Docker私有仓库架构

二、Harbor构建Docker私有仓库

1、环境配置

2、案例需求

3、部署docker-compose服务

4、部署harbor服务

5、启动harbor

① 访问

② 添加项目并填写项目名称

③ 通过127.0.0.1来登陆和推送镜像

④ 维护管理Harbor

⑤ 创建Harbor用户

⑤ 移除 Harbor 服务容器同时保留镜像数据/数据库


一、Docker Harbor概述

可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能

Harbor是VMware公司开源的企业级Docker Registry项目

1、Harbor的优势

① 基于角色控制 ② 基于镜像的复制策略 ③ 支持LDAP/AD ④ 图像删除和垃圾收集 ⑤ 图像UI ⑥ 审计 ⑦ RESTful API

2、Harbor知识点

  • Proxy:通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务

  • Registry:负责存储Docker镜像,并处理docker push/pull命令

  • Core services:Harbor的核心功能,包括UI、webhook、token服务

  • Database:为core services提供数据库服务

  • Log collector:·负责收集其他组件的log,供日后进行分析

3、Docker私有仓库架构

在这里插入图片描述 所有的请求都经过proxy代理,proxy代理转发给Core services和Registry,其中Core services包括UI界面、token令牌和webhook网页服务功能,Registry主要提供镜像存储功能。如果要进行下载上传镜像,要经过token令牌验证然后从Registry获取或上传镜像,每一次下载或上传都会生成日志记录,会记入Log collector,而用户身份权限及一些镜像语言信息会被存储在Database中。

二、Harbor构建Docker私有仓库

1、环境配置

主机操作系统IP地址软件
serverCentOS7.6192.168.110.10docker、docker-compose、harbor-offline-v1.1.2
clientCentOS7.6192.168.110.20docker

2、案例需求

通过Harbor创建Docker私有仓库 图形化管理Docker私有仓库镜像

3、部署docker-compose服务

Harbor 被部署为多个 Docker 容器,因此可以部署在任何支持 Docker 的 Linux 发行版 上。 服务端主机需要安装 Python、Docker 和 Docker Compose。

cd /usr/local
rz docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin
1234

在这里插入图片描述

4、部署harbor服务

上传或下载harbor安装程序
wget http:// harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
​
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
​
==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg
​
==第5行修改==
hostname = 192.168.110.10
-- 59行--指定管理员的初始密码,默认的用户名/密码是admin/ Harbor12345
harbor_admin_ password = Harbor12345
123456789101112

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注: 不可以使用localhost或127.0.0.1为主机名

关于Harbor.cfg 配置文件中有两类参数:所需参数和可选参数 1、所需参数:这些参数需要在配置文件Harbor.cfg 中设置。如果用户更新它们并运行install.sh 脚本重新安装Harbour,参数将生效。具体参数如下: ●hostname:用于访问用户界面和register 服务。它应该是目标机器的IP地址或完全限定的域名(FQDN) ,例如192.168.80.10 或 hub. kgc.cn。不要使用localhost 或127.0.0.1 为主机名 ●ui_url_protocol:(http或https,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https ●max_job_workers: 镜像复制作业线程 ●db_password: 用于db_auth的MySQL数据库root用户的密码 ●customize_crt:该属性可设置为打开或关闭,默认打开。打开此属性时,准备脚本创建私钥和根证书,用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时,将此属性设置为off ●ssl_cert: SSL 证书的路径,仅当协议设置为https时才应用 ●secretkey_path:用于在复制策略中加密或解密远程register 密码的密钥路径 ●project_creation_restriction: 用于控制哪些用户有权创建项目的标志。默认情况下,每个人都可以创建-一个项目。如果将其值设置为“adminonly” 那么只有admin可以创建项目 ●verify_remote_cert: 打开或关闭,默认打开。此标志决定了当Harbor与远程register实例通信时是否验证SSL/TLS 证书。将此属性设置为off将绕过SSL/TLS验证,这在远程实例具有自签名或不可信证书时经常使用 另外,默认情况下,Harbour 将镜像存储在本地文件系统.上。在生产环境中,可以考虑使用其他存储后端而不是本地文件系统,如S3、Openstack Swif、Ceph 等对象存储。但需要更新common/templates/registry/config.yml文件

5、启动harbor

sh /usr/local/harbor/install.sh
1

在这里插入图片描述

在这里插入图片描述

docker ps
docker images
12

在这里插入图片描述

docker-compose ps
1

在这里插入图片描述

① 访问

192.168.110.10/harbor/sign-in
用户名:admin
密码:Harbor12345
123

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

② 添加项目并填写项目名称

在这里插入图片描述

在这里插入图片描述

③ 通过127.0.0.1来登陆和推送镜像

此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下, Register 服务器在端口 80 上侦听

#登陆
docker login -u admin -p Harbor12345 http://127.0.0.1
​
#下载镜像进行测试
docker pull tomcat
​
#镜像打标签
docker tag tomcat 127.0.0.1/wbw-project/tomcat:v1
​
#上传镜像到Harbor
docker push 127.0.0.1/wbw-project/tomcat:v1
1234567891011

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看图形化界面

在这里插入图片描述

systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://192.168.110.10
123

在这里插入图片描述

在这里插入图片描述

docker pull nginx
docker tag nginx:latest 192.168.110.10/zy/nginx:v1
docker push 192.168.110.10/zy/nginx:v1
123

在这里插入图片描述

图形界面查看

在这里插入图片描述

④ 维护管理Harbor

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。

修改 Harbor.cfg 配置文件 要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;然后运行 prepare 脚本来填充配置;最后重新创建并启动 Harbour 的实例。

#卸载
docker-compose down -v
​
#编辑配置文件 
vim harbor.cfg
​
#填充配置
./prepare
​
#启动Harbor
docker-compose up -d
​
#如果报错
解决思路
关闭防火墙、重启docker
systemctl stop firewalld
setenfore 0
systemctl restart docker
123456789101112131415161718

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

⑤ 创建Harbor用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

client操作

docker logout 192.168.110.10
docker login 192.168.110.10
wubingw
112233445566wbw
​
docker images
docker rmi 192.168.110.10/zy/nginx:v1
docker pull 192.168.110.10/zy/nginx:v1
12345678

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

在这里插入图片描述

⑤ 移除 Harbor 服务容器同时保留镜像数据/数据库

在server上进行操作

docker-compose down -v
​
#如果需要重新部署,需要移除Harbor服务容器全部数据
#持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下
rm -rf /data/database
rm -rf /data/registry

Docker Harbor概述

可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能

Harbor是VMware公司开源的企业级Docker Registry项目

1、Harbor的优势

① 基于角色控制 ② 基于镜像的复制策略 ③ 支持LDAP/AD ④ 图像删除和垃圾收集 ⑤ 图像UI ⑥ 审计 ⑦ RESTful API

2、Harbor知识点

  • Proxy:通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务

  • Registry:负责存储Docker镜像,并处理docker push/pull命令

  • Core services:Harbor的核心功能,包括UI、webhook、token服务

  • Database:为core services提供数据库服务

  • Log collector:·负责收集其他组件的log,供日后进行分析

3、Docker私有仓库架构

在这里插入图片描述 所有的请求都经过proxy代理,proxy代理转发给Core services和Registry,其中Core services包括UI界面、token令牌和webhook网页服务功能,Registry主要提供镜像存储功能。如果要进行下载上传镜像,要经过token令牌验证然后从Registry获取或上传镜像,每一次下载或上传都会生成日志记录,会记入Log collector,而用户身份权限及一些镜像语言信息会被存储在Database中。

二、Harbor构建Docker私有仓库

1、环境配置

主机操作系统IP地址软件
serverCentOS7.6192.168.110.10docker、docker-compose、harbor-offline-v1.1.2
clientCentOS7.6192.168.110.20docker

2、案例需求

通过Harbor创建Docker私有仓库 图形化管理Docker私有仓库镜像

3、部署docker-compose服务

Harbor 被部署为多个 Docker 容器,因此可以部署在任何支持 Docker 的 Linux 发行版 上。 服务端主机需要安装 Python、Docker 和 Docker Compose。

cd /usr/local
rz docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin
1234

在这里插入图片描述

4、部署harbor服务

上传或下载harbor安装程序
wget http:// harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
​
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
​
==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg
​
==第5行修改==
hostname = 192.168.110.10
-- 59行--指定管理员的初始密码,默认的用户名/密码是admin/ Harbor12345
harbor_admin_ password = Harbor12345
123456789101112

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注: 不可以使用localhost或127.0.0.1为主机名

关于Harbor.cfg 配置文件中有两类参数:所需参数和可选参数 1、所需参数:这些参数需要在配置文件Harbor.cfg 中设置。如果用户更新它们并运行install.sh 脚本重新安装Harbour,参数将生效。具体参数如下: ●hostname:用于访问用户界面和register 服务。它应该是目标机器的IP地址或完全限定的域名(FQDN) ,例如192.168.80.10 或 hub. kgc.cn。不要使用localhost 或127.0.0.1 为主机名 ●ui_url_protocol:(http或https,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https ●max_job_workers: 镜像复制作业线程 ●db_password: 用于db_auth的MySQL数据库root用户的密码 ●customize_crt:该属性可设置为打开或关闭,默认打开。打开此属性时,准备脚本创建私钥和根证书,用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时,将此属性设置为off ●ssl_cert: SSL 证书的路径,仅当协议设置为https时才应用 ●secretkey_path:用于在复制策略中加密或解密远程register 密码的密钥路径 ●project_creation_restriction: 用于控制哪些用户有权创建项目的标志。默认情况下,每个人都可以创建-一个项目。如果将其值设置为“adminonly” 那么只有admin可以创建项目 ●verify_remote_cert: 打开或关闭,默认打开。此标志决定了当Harbor与远程register实例通信时是否验证SSL/TLS 证书。将此属性设置为off将绕过SSL/TLS验证,这在远程实例具有自签名或不可信证书时经常使用 另外,默认情况下,Harbour 将镜像存储在本地文件系统.上。在生产环境中,可以考虑使用其他存储后端而不是本地文件系统,如S3、Openstack Swif、Ceph 等对象存储。但需要更新common/templates/registry/config.yml文件

5、启动harbor

sh /usr/local/harbor/install.sh
1

在这里插入图片描述

在这里插入图片描述

docker ps
docker images
12

在这里插入图片描述

docker-compose ps
1

在这里插入图片描述

① 访问

192.168.110.10/harbor/sign-in
用户名:admin
密码:Harbor12345
123

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

② 添加项目并填写项目名称

在这里插入图片描述

在这里插入图片描述

③ 通过127.0.0.1来登陆和推送镜像

此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下, Register 服务器在端口 80 上侦听

#登陆
docker login -u admin -p Harbor12345 http://127.0.0.1
​
#下载镜像进行测试
docker pull tomcat
​
#镜像打标签
docker tag tomcat 127.0.0.1/wbw-project/tomcat:v1
​
#上传镜像到Harbor
docker push 127.0.0.1/wbw-project/tomcat:v1
1234567891011

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看图形化界面

在这里插入图片描述

systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://192.168.110.10
123

在这里插入图片描述

在这里插入图片描述

docker pull nginx
docker tag nginx:latest 192.168.110.10/zy/nginx:v1
docker push 192.168.110.10/zy/nginx:v1
123

在这里插入图片描述

图形界面查看

在这里插入图片描述

④ 维护管理Harbor

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。

修改 Harbor.cfg 配置文件 要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;然后运行 prepare 脚本来填充配置;最后重新创建并启动 Harbour 的实例。

#卸载
docker-compose down -v
​
#编辑配置文件 
vim harbor.cfg
​
#填充配置
./prepare
​
#启动Harbor
docker-compose up -d
​
#如果报错
解决思路
关闭防火墙、重启docker
systemctl stop firewalld
setenfore 0
systemctl restart docker
123456789101112131415161718

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

⑤ 创建Harbor用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

client操作

docker logout 192.168.110.10
docker login 192.168.110.10
wubingw
112233445566wbw
​
docker images
docker rmi 192.168.110.10/zy/nginx:v1
docker pull 192.168.110.10/zy/nginx:v1
12345678

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

在这里插入图片描述

⑤ 移除 Harbor 服务容器同时保留镜像数据/数据库

在server上进行操作

docker-compose down -v
​
#如果需要重新部署,需要移除Harbor服务容器全部数据
#持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下
rm -rf /data/database
rm -rf /data/registry

http://www.ppmy.cn/news/58527.html

相关文章

C++入门(内容补充)

目录 前言 1.auto关键字 1.1 auto的使用细则 1.2 auto不能推导的场景 2. 基于范围的for循环(C11) 2.1 范围for的使用条件 3.指针空值nullptr(C11) 3.1 C98中的指针空值 前言 之前给大家更新了一系列关于C的基础语法,那么今天小编再给大家进行部分内容的补充…

C++好难(2):类和对象(上篇)

okay,从这里开始,就进入c比较难的部分了~啊啊啊!!! (﹃ԅ) 坚持坚持啦 ~ ᵎ(•̀㉨•́)و ̑̑ 【本章目标】 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实…

scrapy定制爬虫-爬取javascript内容

很多网站都使用javascript...网页内容由js动态生成,一些js事件触发的页面内容变化,链接打开.甚至有些网站在没有js的情况下根本不工作,取而代之返回你一条类似"请打开浏览器js"之类的内容. 对javascript的支持有四种解决方案: 1,写代码模拟相关js逻辑. 2,调用一个有…

山东省2023年春季高考技能测试电子技术类专业试题

注意事项 1.本试题为样题,实际测试试题与样题基本一致,不同场次试题电路装配要求会有变化,请考生仔细审题。 2.严禁考生私自送电,严禁带电操作(通电调试除外)。 3.考生要服从监考人员安排,遵…

无代码时代来了,程序员会失业吗?不,程序员又不够用了!

有人问我无代码时代来了,程序员会失业吗?太难了,秃了头就算了,连工作也保不住了? 先说观点:并不会 因为,无代码不是真正意义上的无代码。 无代码开发的使用对象是编程小白(我猿是…

人工智能导论:模型与算法,附录实验三:线性回归模型

本人研一,简单记录下上课的大作业,如果你不会自己写,相信你有缘能找到这篇博客 线性回归模型 1.实验内容 图像是一种非常常见的信息载体,但是在图像的获取、传输、存储过程中可能由于各种原因使得图像受到噪声的影响。如何去除…

年薪40万程序员辞职炒股,把一年工资亏光了,得了抑郁症,太惨了

年薪40万的程序员辞职全职炒股 把一年的工资亏光了 得了抑郁症 刚才在网上看了一篇文章 是一位北京的一位在互联网 大厂上班的程序员 在去年就是股市行情比较好的时候 他买了30多万股票 结果连续三个月都赚钱 然后呢 他是就把每天就996这种工作就辞掉了 然后在家全是炒股 感觉炒…

Docker快速部署springboot项目

有很多开发者在项目部署过程中都会遇到一些繁琐的问题,比如打包、上传、部署等。而使用Docker可以非常方便地解决这些问题。在本文中,将详细讲解如何使用IDEA中的docker打包插件,将代码打包并直接发布到服务器上。这样,我们就可以…