云计算核心技术Docker教程:使用harbor搭建私有镜像仓库
扫描二维码
随时随地手机看文章
之前介绍的docker搭建私有镜像仓库是使用的官方提供的私有仓库registry,安装使用虽然简单,但在管理的功能上存在不足。Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
1.安装Harbor主机环境及安装要求
安装Harbor之前需要首先安装docker-compose、docker以及python2.7,docker和docker-compose的安装之前文章已经介绍过就不在重复,安装完成这些后就可以进行Harbor的正式安装。
harbor有两个版本,分别为offline(离线)和online(在线),离线的安装包比较大,后续安装会相对快一点,在线的安装包比较下,但是后续安装会比较慢,这里我们选择离线安装
下载地址:https://github.com/goharbor/harbor/releases
这里我们使用1.7的版本演示
下载下来之后解压缩,目录下会有harbor.conf,就是Harbor的配置文件了。
2.配置harbor
Harbor的配置文件如下:
## Configuration file of Harbor
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = 192.168.1.33
# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http
# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = root123
max_job_workers = 3
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
# 邮件设置,发送重置密码邮件时使用
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin
email_ssl = false
# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345
# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth
# LDAP认证时配置项
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid
#ldap_scope = 3
#ldap_timeout = 5
# 是否开启自注册
self_registration = on
# Token有效时间,默认30分钟
token_expiration = 30
# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone
verify_remote_cert = on
配置完成之后再当前目录下执行./prepare,再执行./install.sh。Harbor就回根据当前目录下的docker-compose.yml下载依赖的镜像。
3.启动Harbor
安装完成之后,打开浏览器访问你上边配置的hostname属性,就能看到Harbor的界面了。
账号默认是admin,密码默认Harbor12345
默认安装后会自动创建一个名称为library的项目,且访问级别为公开(表示任何人可读,即任何人都可以下载该项目中的镜像)