实际上harbor就是利用docker-compose进行管理Dokcer的一个UI系统
目标主机需要安装Python,Docker和Docker Compose。
- Python应该是2.7或更高版本。
- Docker引擎应为1.10或更高版本。有关安装说明,请参阅:https://docs.docker.com/engine/installation/
- Docker Compose需要为1.6.0或更高版本。有关安装说明,请参阅:https://docs.docker.com/compose/install/
Harbor简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
- 基于角色的访问控制
- 镜像复制
- 图形化用户界面
- AD/LDAP 支持
- 审计管理
- 国际化
- RESTful API
- 部署简单
安装环境
目标主机的先决条件
Harbor被部署为多个Docker容器,因此可以部署在任何支持Docker的Linux发行版上。目标主机需要安装Python,Docker和Docker Compose。
硬件
资源 | 容量 | 描述 |
中央处理器 | 最少2个CPU | 4个CPU是首选 |
纪念品 | 最小4GB | 8GB是首选 |
磁盘 | 最小40GB | 160GB是首选 |
软件
软件 | 版 | 描述 |
蟒蛇 | 版本2.7或更高 | 请注意,您可能必须在Linux发行套件(Gentoo,Arch)上安装Python,它们不包含默认安装的Python解释器 |
Docker引擎 | 版本1.10或更高 | 有关安装说明,请参阅:https://docs.docker.com/engine/installation/ |
Docker撰写 | 版本1.6.0或更高版本 | 有关安装说明,请参阅:https://docs.docker.com/compose/install/ |
OpenSSL的 | 最新是首选 | 为Harbour生成证书和密钥 |
网络端口
港口 | 协议 | 描述 |
443 | HTTPS | Harbor UI和API将接受此端口上的https协议请求 |
4443 | HTTS | 连接到Harbour的Docker Content Trust服务,仅在启用公证时才需要 |
80 | HTTP | Harbor UI和API将接受此端口上的http协议请求 |
下载离线安装包并解压
wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.0-rc2.tgz
tar -zxf harbor-offline-installer-v1.5.0-rc2.tgz -C /opt/app/
配置安装
配置参数位于文件/opt/app/harbor/harbor.cfg中
vim harbor.cfg
harbor.cfg中有两类参数,必需参数和可选参数。
- 所需参数:这些参数需要在配置文件中设置。如果用户更新它们harbor.cfg并运行install.sh脚本重新安装Harbour,它们将生效。
- 可选参数:这些参数对于更新是可选的,即用户可以将其保留为默认值,并在启动Harbour后在Web UI上进行更新。如果他们进入harbor.cfg,他们只会在首次启动海港时生效。随后对这些参数的更新harbor.cfg将被忽略。
注意:如果您选择通过UI设置这些参数,请确保在启动Harbour后立即执行此操作。特别是,您必须在注册或在Harbor中创建任何新用户之前设置所需的auth_mode。当系统中有用户时(除默认管理员用户外), auth_mode不能更改。
参数如下所述 - 请注意,至少您需要更改主机名属性。
所需参数:
- 主机名:目标主机的主机名,用于访问UI和注册表服务。它应该是目标机器的IP地址或完全限定域名(FQDN),例如192.168.1.10或reg.yourdomain.com。不要使用localhost或127.0.0.1为主机名 - 注册表服务需要由外部客户端访问!
- ui_url_protocol:(http或https,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https。默认情况下,这是http。要设置https协议,请参阅使用HTTPS访问配置Harbour。
- db_password:用于db_auth的MySQL数据库的根密码。更改此密码以供任何生产使用!
- max_job_workers :(默认值为3)作业服务中复制工作的最大数量。对于每个映像复制作业,工作人员将存储库的所有标记同步到远程目标。增加这个数字允许系统中有更多的并发复制作业。但是,由于每个工作人员消耗了一定数量的网络/ CPU / IO资源,请根据主机的硬件资源仔细选择此属性的值。
- customize_crt:(打开或关闭,默认打开)打开此属性时,准备脚本将创建私钥和根证书,以生成/验证注册表的令牌。当外部来源提供密钥和根证书时,将此属性设置为off。有关更多信息,请参阅自定义密钥和港口令牌服务证书。
- ssl_cert:SSL证书的路径,仅当协议设置为https时才适用
- ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
- secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。
- log_rotate_count:日志文件在被删除之前被轮转log_rotate_count次。如果count为0,则删除旧版本而不是旋转。
- log_rotate_size:日志文件只有在长度大于log_rotate_size字节的情况下才会进行旋转。如果大小后面跟着k,则大小假定为千字节。如果使用M,则大小以兆字节为单位,如果使用G,则大小以GB为单位。所以尺寸100,尺寸100k,尺寸100M和尺寸100G都是有效的。
可选参数
- 电子邮件设置:Harbor需要这些参数才能向用户发送“密码重置”电子邮件,并且只有在需要该功能时才需要。另外,请注意,在默认情况下SSL连接时没有启用-如果你的SMTP服务器需要SSL,但不支持STARTTLS,那么你应该通过设置启用SSL email_ssl = TRUE。如果电子邮件服务器使用自签名或不可信证书,请设置email_insecure = true。有关“email_identity”的详细说明,请参阅rfc2595
- email_server = smtp.mydomain.com
- email_server_port = 25
- email_identity =
- email_username = sample_admin@mydomain.com
- email_password = abc
- email_from = admin sample_admin@mydomain.com
- email_ssl = false
- email_insecure = false
- harbour_admin_password:管理员的初始密码。该密码仅在Harbour首次启动时生效。之后,此设置将被忽略,管理员的密码应在用户界面中设置。请注意,默认的用户名/密码是admin / Harbor12345。
- auth_mode:使用的认证类型。默认情况下,它是db_auth,即凭据存储在数据库中。对于LDAP认证,将其设置为ldap_auth。
重要提示:从现有Harbour实例升级时,必须确保在启动新版本的Harbour之前,auth_mode与之相同harbor.cfg。否则,升级后用户可能无法登录。 - ldap_url:LDAP端点URL(例如ldaps://ldap.mydomain.com)。 仅在auth_mode设置为ldap_auth时使用。
- ldap_searchdn:有权搜索LDAP / AD服务器(例如uid=admin,ou=people,dc=mydomain,dc=com)的用户的DN 。
- ldap_search_pwd:由ldap_searchdn指定的用户的密码。
- ldap_basedn:查找用户的基本DN,例如ou=people,dc=mydomain,dc=com。 仅在auth_mode设置为ldap_auth时使用。
- ldap_filter:查找用户的搜索过滤器,例如(objectClass=person)。
- ldap_uid:LDAP搜索过程中用于匹配用户的属性,可以是uid,cn,email或其他属性。
- ldap_scope:搜索用户的范围,0-LDAP_SCOPE_BASE,1-LDAP_SCOPE_ONELEVEL,2-LDAP_SCOPE_SUBTREE。缺省值是2。
- self_registration:(打开或关闭,默认打开)启用/禁用用户自行注册的功能。禁用时,只能由Admin用户创建新用户,只有管理员用户可以在Harbour中创建新用户。 注意:当auth_mode设置为ldap_auth时,自注册功能始终处于禁用状态,并且该标志被忽略。
- token_expiration:由令牌服务创建的令牌的到期时间(以分钟为单位),默认值为30分钟。
- project_creation_restriction:用于控制哪些用户有权创建项目的标志。默认情况下,每个人都可以创建一个项目,设置为“adminonly”,这样只有admin可以创建项目。
自定义UI访问端口
vim /opt/app/harbor/docker-compose.yml
修改仓库访问地址
vim /opt/app/harbor/common/templates/registry/config.yml
安装
cd /opt/app/harbor
./install.sh
完成安装并启动Harbor
一旦配置了harbor.cfg和存储后端(可选),请使用该install.sh脚本安装并启动Harbour 。请注意,在线安装程序可能需要一段时间才能从Docker中心下载Harbor图像。
默认安装(没有公证人/克莱尔)
Harbour已经与Notary和Clair进行了整合(用于漏洞扫描)。但是,默认安装不包括公证人或克莱尔服务。
$ sudo ./install.sh
如果一切正常,您应该能够打开浏览器访问http://reg.yourdomain.com的管理门户(将reg.yourdomain.com更改为您的主机名harbor.cfg)。请注意,默认的管理员用户名/密码是admin / Harbor12345
登录到管理门户并创建一个新项目,例如myproject。然后,您可以使用docker命令登录并推送图像(默认情况下,注册表服务器在端口80上侦听):
$ docker登录reg.yourdomain.com
$ docker push reg.yourdomain.com/myproject/myrepo:mytag
重要信息: Harbor的默认安装使用HTTP - 因此,您需要将该选项添加--insecure-registry到客户端的Docker守护程序并重新启动Docker服务。
vim /usr/lib/systemd/system/docker.service或者vim /etc/sysconfig/docker
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.10.8:666
先systemctl daemon-reload
然后systemctl restart docker
与公证人一起安装
要使用公证服务安装Harbor,请在运行时添加参数install.sh:
$ sudo ./install.sh --with-notary
注意:对于使用公证进行安装,必须将参数ui_url_protocol设置为“https”。有关配置HTTPS的信息,请参阅以下章节。
有关公证和Docker内容信任的更多信息,请参阅Docker的文档:https://docs.docker.com/engine/security/trust/content_trust/
用Clair安装
要使用Clair服务安装Harbor,请在运行时添加参数install.sh:
$ sudo ./install.sh --with-clair
有关Clair的更多信息,请参阅Clair的文档:https : //coreos.com/clair/docs/2.0.1/
注意:如果你想同时安装Notary和Clair,你必须在同一个命令中指定两个参数:
$ sudo ./install.sh --with-notary --with-clair
搭建完成
如何把镜像push到harbor仓库
1.先创建一个项目
2.push之前登录harbor仓库,输入账号密码
docker login 192.168.10.8:666
admin
Harbor12345
3.然后给镜像打标签
格式:docker tag SOURCE_IMAGE[:TAG] 192.168.10.8/test/IMAGE[:TAG]
docker tag 9e9755aadec4 192.168.10.8:666/test/harbor-log
4.然后执行上传命令
格式:docker push 192.168.10.8/test/IMAGE[:TAG]
docker push 192.168.10.8:666/test/harbor-log
转载于:https://blog.51cto.com/7072753/2121449