安装前提:宿主机安装有docker
下载安装包
下载地址:github https://github.com/vmware/harbor/releases 解压之后,进入harbor目录,打开 harbor.cfg文件 ,所有配置详情如下,其中必选参数已加粗,原有注释表示还不知道啥意思 =-=!后续再慢慢补充
#harbor版本信息
_version = 1.6.0
#目标主机的主机名,不能用localhost和127.0.0.1
**hostname = 47.107.178.206**
#(http或https,默认为http)用于访问UI和令牌/通知服务的协议。如果启用了认证,则此参数必须为https
**ui_url_protocol = http**
#作业服务中的最大复制工作数,增加此数量可以在系统中实现更多并发复制作业。
**max_job_workers = 10**
#在准备脚本创建注册表的令牌是否生成/验证私钥和根证书,on表示生成,如果外部提供则设置为off
**customize_crt = on**
#The path of cert and key files for nginx, they are applied only the protocol is set to https
#证书和密钥的路径,仅在协议为https时应用
**ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key**
#加密或解密复制策略中远程注册表密码的密钥路径。
**secretkey_path = /data**
#Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone
admiral_url = NA
#日志文件在被删除之前会被轮询log_rotate_count次数,如果count为0,则删除旧版本而不是轮询。
log_rotate_count = 50
#单个日志文件最大值,只有大于该值才会轮换日志
log_rotate_size = 200M
#Config http proxy for Clair, e.g. http://my.proxy.com:3128
#Clair doesn't need to connect to harbor ui container via http proxy.
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,ui,registry
#邮件设置,发送重置密码邮件时使用
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
email_insecure = false
#默认admin账户的密码
harbor_admin_password = Harbor12345
#认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth
#LDAP认证时配置项 需要是再配置,一般默认就行
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 2
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2
#是否开启自注册
self_registration = on
#Token有效时间,默认30分钟
token_expiration = 30
#用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone
db_host = postgresql
db_password = root123
db_port = 5432
db_user = postgres
#redis数据库连接信息
redis_host = redis
redis_port = 6379
redis_password =
redis_db_index = 1,2,3
clair_db_host = postgresql
clair_db_password = root123
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
clair_updaters_interval = 12
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_config =
然后本目录执行 ./install.sh安装。安装过程中会拉取所需要的镜像。
push镜像
安装完成之后就可以push镜像到私有仓库了
我在另一台服务器上有一个简单的基于java的镜像,首先给该镜像打上标签
docker tag 3e98ef625216 47.107.178.206/my_registry/my_jar_test:1
然后,我在这台服务器上登录另一台服务器搭建的Harbor仓库,docker login xxxxx
报错了,原来是这台服务器没有设置docker的远程Harbor仓库
打开 /usr/lib/systemd/system/docker.service 文件
在这项配置后面加上指向Harbor仓库的配置
ExecStart=/usr/bin/dockerd --insecure-registry 47.107.178.206
或者修改etc/docker/daemon.json文件,添加registry-mirrors配置项,该项以为不安全的仓库。
"insecure-registries": ["172.16.xxx.xx","IP:PORT"],
再次登录就可成功了,push镜像
docker push 47.107.178.206/my_registry/my_jar_test:1
再换一台服务器拉镜像 :)