Docker 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概述
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地址 | 软件 |
---|---|---|---|
server | CentOS7.6 | 192.168.110.10 | docker、docker-compose、harbor-offline-v1.1.2 |
client | CentOS7.6 | 192.168.110.20 | docker |
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地址 | 软件 |
---|---|---|---|
server | CentOS7.6 | 192.168.110.10 | docker、docker-compose、harbor-offline-v1.1.2 |
client | CentOS7.6 | 192.168.110.20 | docker |
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相关推荐
- Docker Harbor概述及构建
目录 一.Docker Harbor概述 1.1 Harbor的优势 1.2 Harbor的核心组件 1.2.1 Proxy 1.2.2 Registry 1.2.3 Core services 1. ...
- 安装使用docker harbor作为私有docker服务器的操作步骤及遇到的问题
安装使用docker harbor作为私有docker服务器的操作步骤及遇到的问题 一.ubuntu18.04安装docker harbor步骤及遇到的问题 二.关于docker commit及doc ...
- Docker harbor私有仓库部署与管理
Docker harbor私有仓库部署与管理. 前言 一.什么是Harbor 二.Harbor的特性 三.Harbor的构成 四.Harbor部署 4.1 环境准备 4.2 部署Docker Comp ...
- Docker -- Harbor介绍
Harbor Docker Harbor 部署私有仓库.它以 Registry 为基础,提供了对用户友好的管理界面,可以帮助我们快速搭建一个企业级的 Docker Registry 服务.Harbor ...
- 肝2022世界杯,怒写企业级镜像私仓Docker+Harbor实践
2022-12-09 揭幕2022卡塔尔世界杯4强角逐的第一天,越来越精彩了 同时记录程序猿的成长~ 1.背景 由于期望搭建一个企业级CICD的环境,开始尝试常规的gitlab+jenkins+k8s ...
- 【赵强老师】什么是Docker Harbor
先看视频. [赵强老师]什么是Docker Harbor 什么是Harbor? Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面 ...
- docker Harbor 问题
1:prepare失败 KeyError: 'data_volume' 解决:https://blog.csdn.net/u011709380/article/details/114258655 将h ...
- docker Harbor
1:prepare失败 KeyError: 'data_volume' 解决:https://blog.csdn.net/u011709380/article/details/114258655 将h ...
- docker harbor 域名_超详细的搭建docker私服Harbor教程
概述 "集装箱"是Docker设计哲学之所在,它让一台物理机(或者虚拟机)同时运行多个相互隔离的应用变得更为轻松简朴,固然这一切照样多亏Linux的相关底层手艺,固然,也包罗OS ...
最新文章
- 【转】读马化腾的产品设计观
- java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件
- 互联网工作原理(17.网络电视是如何工作的)
- css 科技 边框_CSS 边框
- 获取设备IMEI ,手机名称,系统SDK版本号,系统版本号
- 大剑无锋之后台运行程序并输出日志到某文件【面试推荐】
- oracle将查询结果声明为伪表,Oracle的伪列和伪表
- (贪心)区间问题大致思路
- Mac设置多屏幕的时候程序坞的位置
- Android自动化测试01-环境安装连接问题及解决
- Android简介:安卓开发环境搭建步骤
- c语言银行卡六位密码编译,6位随机密码生成器
- 计算机为啥启用不了网络发现,Windows7系统无法启用网络发现怎么解决?
- python切片练习(League of Legends)
- 牛牛试题排版插件V3更新发布
- PDF怎么删除空白页?必备PDF页面删除技巧
- cmd介绍及常用命令
- 一种典型的手机APP远程控制PLC解决方案
- GEE实战 | 各种指数分析(植被、水体、建筑)
- React 动效 Framer motion,给你的页面添加一点动感
热门文章
- QT实现播放wmv视频文件QMediaPlayer_QVideoWidget
- 在线html5视频播放器,分享10款最棒的免费HTML5视频播放器
- 文件创建时间、修改时间、访问时间的定义
- 26对称矩阵及正定性
- 华为盒子EC6110-T_悦me高安版_线刷固件(通刷版)
- 通过 Webhook 接收数据库变更通知
- 基于opencv 的 fftshift, ifftshift 函数的实现
- 多个电子面单接口平台分析和对接
- 编辑grub.cfg修复linux,Ubuntu如何修改grub.cfg
- uCOS-II实时操作系统移植的大致步骤