容器(6)--Docker 仓库--3.企业级Harbor仓库管理 (Harbor仓库介绍,搭建及使用)

Harbor企业级开源仓库

一 . Harbor仓库介绍

1) Harbor特性

基于角色的访问控制:用户和存储库是通过“项目”组织的,用户可以对多个镜像仓库统一命名空间拥有不同的权限。

镜像复制:可以基于具有多个Registry实例之间复制(同步)图像和图表。如果出现任何错误,Harbor会自动重试复制。非常适合于负载平衡、高可用性、多数据中心、混合和多云场景。

LDAP/AD支持:Harbor与现有企业LDAP/AD集成,用于用户身份验证和管理,并支持将LDAP组导入Harbor并为其分配适当的项目角色。

镜像删除和垃圾收集:镜像可以删除,其空间可以回收。

国际化:对多国语言支持(已拥有中文、英文、德文、日语和俄文);

图形化用户界面:用户可以轻松浏览、搜索存储库和管理项目。

审计管理:跟踪到存储库的所有操作。

RESTful API:用于大多数管理操作的RESTful API,易于与外部系统集成。一个嵌入式的Swagger用户界面可用于探索和测试API。

简单部署:提供在线和离线安装程序。此外,可以安装到vSphere平台的(OVA方式)虚拟设备。

2)Harbor 组件

proxy:Harbor的组件,如注册表、UI和令牌服务,都位于反向代理之后。代理将来自浏览器和Docker客户机的请求转发到各种后端服务。

Registry:负责存储Docker镜像和处理Docker推/拉命令。由于Harbor需要对映像进行访问权限控制,Registry将引导客户机访问令牌服务,以便为每个pull或push请求获取有效的令牌(token)。

Core Service:Harbor的核心功能,主要提供以下服务:
UI:提供图像化的图形用户界面,帮助人户管理镜像和对用户授权。
webhook: 为了及时获取registry上images的状态变化的情况,在Registry上配置webhook, 把状态变化传递UI模块;
Token令牌服务:负责根据用户在项目中的角色为每个docker push/pull命令颁发令牌。如果从Docker客户机发送的请求中没有令牌,注册表将把请求重定向到令牌服务。

Datebase:为了给core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。

Job Services:提供镜像远程负责功能,能把本地镜像同步到其他harbor实例当中。

Log Collector:为了帮助监控Harbor运行,负责手机其他组件的log,供日后分析。

image.png
image.png

二 .Harbor 安装搭建

第一步 安装Docker-compose

线上安装(网好)

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.1/docker- compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

这一步国内不用加速器可能会比较慢!
Docker国内阿里云镜像加速传送门

image.png

Docker-compose官方安装文档链接
VMWare Harbor项目地址传送门

1.在配置文件添加镜像加速器,并重启docker

vim /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker

2.下载 docker-compose 并修改执行权限

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.1/docker- compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

docker-compose --version

第二步 下载harbor 安装包并安装

GitHub地址:https://github.com/goharbor/harbor/releases #下载1.9.4版本

cd /var/local 
rz harbor-offline-installer-v1.9.4.tgz 
tar xf harbor-offline-installer-v1.9.4.tgz
cd harbor

[root@docker harbor]# ./prepare 

然后运行install.sh安装脚本

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

安装成功

image.png
image.png
image.png

补充:

q1

./install.sh   执行后 出现下面错误
image.png

解决:检查防火墙状态, 防火墙处于关闭状态。
应开启防火墙。

q2

登录时 要先更改 harbor 配置文件

image.png

改为 自己的ip(也可为域名,但要host解析等), 在harbor 配置文件中
可看到登录名与密码 admin Harbor12345(可更改)


image.png

三.Harbor 的使用

image.png
  1. 创建项目


    image.png

此时就看到创建的项目


image.png

2)创建用户


image.png

填入用户的信息


image.png
image.png

3)把用户添加到项目中


image.png
image.png
image.png
image.png

此时在 成员 处就可以看到 添加的成员


image.png

4)项目添加到仓库
客户端操作(pull&&push)
一、修改配置文件

vim /etc/docker/daemon.json
{ "insecure-registries":["192.168.88.250"] }
systemctl daemon-reload
systemctl restart docker

二、登录到docker私有仓库

[root@docker2 ~]# docker login 192.168.88.250
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
[root@docker2 ~]#

三、打标签以及push镜像

docker tag nginx:latest 192.168.88.250/test/nginx:v1   #test为我们创建的组
[root@docker2 ~]# docker push 10.0.0.128/test/nginx:v1 
The push refers to repository [10.0.0.128/test/nginx] 
22439467ad99: Pushed 
b4a29beac87c: Pushed 
488dfecc21b1: Pushed 
v1: digest: sha256:62f787b94e5faddb79f96c84ac0877aaf28fb325bfc3601b9c0934d4c107ba94 size: 948 
[root@docker2 ~]#

四、转入仓库发现镜像并pull


Snipaste_2020-02-22_21-30-24.jpg

Snipaste_2020-02-22_21-30-40.jpg

然后去到我们客户端服务器的终端

注:在此之前删除或者修改我们之前tag的以便于区分
 [root@docker2 ~]# docker pull 192.168.88.250/test/nginx:v1 
v1: Pulling from test/nginx 
bc51dd8edc1b: Pull complete 
66ba67045f57: Pull complete 
bf317aa10aa5: Pull complete 
Digest: sha256:62f787b94e5faddb79f96c84ac0877aaf28fb325bfc3601b9c0934d4c107ba94 Status: Downloaded newer image for 192.168.88.250/test/nginx:v1 
192.168.88.250/test/nginx:v1
 [root@docker2 ~]#

你可能感兴趣的:(容器(6)--Docker 仓库--3.企业级Harbor仓库管理 (Harbor仓库介绍,搭建及使用))