十二、安装企业级私有仓库harbor

一、harbor介绍

Harbor gitlab项目地址:https://github.com/goharbor/harbor

Harbor是一个开源的可信云本机注册表项目,用于存储,签名和扫描内容。Harbor通过添加用户通常需要的功能(如安全性,身份和管理)来扩展开源Docker Distribution。使注册表更接近构建和运行环境可以提高图像传输效率。Harbor支持在注册表之间复制映像,还提供高级安全功能,如用户管理,访问控制和活动审计。

Harbour由Cloud Native Computing Foundation(CNCF)托管。如果您是一个希望帮助塑造云原生技术发展的组织,请考虑加入CNCF。有关谁参与以及Harbour如何扮演角色的详细信息,请阅读CNCF 公告。

二、Harbor 特征

云本机注册表:Harbour 支持容器映像和Helm图表,可用作云本机环境(如容器运行时和业务流程平台)的注册表。

基于角色的访问控制:用户和存储库通过“项目”进行组织,用户可以对项目下的图像拥有不同的权限。

基于策略的映像复制:可以基于具有多个过滤器(存储库,标记和标签)的策略在多个注册表实例之间复制(同步)映像。如果遇到任何错误,Harbor将自动重试进行复制。非常适合负载平衡,高可用性,多数据中心,混合和多云场景。

漏洞扫描:Harbor定期扫描图像并警告用户漏洞。

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

图像删除和垃圾收集:可以删除图像,并可以回收它们的空间。

公证:可以确保图像的真实性。

图形用户门户:用户可以轻松浏览,搜索存储库和管理项目。

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

RESTful API:适用于大多数管理操作的RESTful API,易于与外部系统集成。

易于部署:提供在线和离线安装程序。

三、Harbor的安装

实验环境:

harbor仓库: inode2:192.168.32.102   最低4G内存
客户端    : inode3:192.168.32.103

在inode2上部署harbor

第一步:安装docker和docker-compose

 
yum install -y docker-ce
yum install -y docker-compose

第二步:下载harbor-offline-installer-v1.8.6.tgz

wget https://gitlab.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.6.tgz

第三步:上传到/server/tools,并解压

mkdir -p /server/tools
mv harbor-offline-installer-v1.8.6.tgz /server/tools
tar -xf harbor-offline-installer-v1.8.6.tgz

第四步:修改harbor.yml/harbor.cfg配置文件

 
cd harbor

hostname = 192.168.32.102

harbor_admin_password = 123456

http:
  port: 180

data_volume: /data/harbor
#数据目录

location: /data/harbor/logs
#日志目录

第五步:执行install.sh

 
./install.sh

第六步:检查docker-compose ps全up就安装完成

[root@inode2 harbor]# docker-compose ps
  Name                     Command               State             Ports          
harbor-core         /harbor/start.sh                 Up                               
harbor-db           /entrypoint.sh postgres          Up      5432/tcp                 
harbor-jobservice   /harbor/start.sh                 Up                               
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-portal       nginx -g daemon off;             Up      80/tcp                   
nginx               nginx -g daemon off;             Up      0.0.0.0:80->80/tcp       
redis               docker-entrypoint.sh redis ...   Up      6379/tcp                 
registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp                 
registryctl         /harbor/start.sh                 Up                

第七步:访问验证:

Harbor默认用户名密码为:admin/12345 生产环境必须修改

四、harbor的使用

在harbor的页面上配置相关信息

1、用户管理---创建用户

user:ywx
passwd:YWXywx123

2、项目---新建项目

 
项目名称:kingseal
不公开

在客户端inode3配置/etc/docker/daemon.json,修改harbor的仓库信息

vim /etc/docker/daemon.json

{
 "registry-mirrors": ["https://gah3bzo6.mirror.aliyuncs.com"],
 "insecure-registries": ["192.168.32.102:80"]
}

[root@inode3 ~]# systemctl daemon-reload 
[root@inode3 ~]# systemctl restart docker

上传镜像

1、给镜像文件打标签

[root@inode3 ~]# docker tag nginx:latest 192.168.32.102:80/kingseal/nginx:latest

[root@inode3 ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
 192.168.32.102:80/kingseal/nginx   latest              a1523e859360        10 days ago         127MB
 nginx                       latest              a1523e859360        10 days ago         127MB

2、登录harbor仓库

 
[root@inode3 ~]# docker login 192.168.32.102:80
Username: ywx
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

3、上传镜像

[root@inode3 ~]#dockers push 192.168.32.102:80/kingseal/nginx:latest
[root@inode3 ~]# docker push 192.168.32.102:80/kingseal/nginx:latest
The push refers to repository [192.168.32.102:80/kingseal/nginx]
318be7aea8fc: Pushed 
fe08d5d042ab: Pushed 
f2cb0ecef392: Pushed 
latest: digest: sha256:4a50ed86d8c86e35f530d4a168173677a192177eed14146fbb5728b1b3a2d4de size: 948

#不加tag,就把192.168.32.102:80/kingseal/nginx所有标签全部上传

在harbor页面查看上传的镜像信息

4、下载镜像

[root@inode3 ~]# docker login 192.168.32.102:80

[root@inode3 ~]# docker pull 192.168.32.102:80/kingseal/nginx:lates
 
原文地址:https://www.cnblogs.com/yaokaka/p/14186368.html