docker 私有仓库之Harbor搭建与使用

时间:2024-08-22 12:05:38

Harbor搭建

下载Harbor:

http://harbor.orientsoft.cn/    #下载offline版本

配置Harbor


tar xvf harbor-online-installer-v1.1.2.tgz
cd harbor

修改harbor.cfg内容如下:

# 访问管理UI与注册服务的IP地址或主机名,别使用localhost或127.0.0.1,因为Harbor需要被外部的客户端访问。
hostname = 10.10.10.11 # 访问UI与token/notification服务的协议,默认为http。 如果在nginx中开启了ssl,可以设置为https
ui_url_protocol = http # 发送重置密码的邮件账号。
email_identity = Mail Config
email_server = smtp..net
email_server_port =
email_username = xxx@xxx.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false ## Harbor初始化密码,仅当第一次启动Harbor时有效。在启动Harhor之后失效。
# 从UI上修改管理员密码。
harbor_admin_password = Harbor12345 ## 默认情况下认证模式为db_auth,如:证书被存储在本地的数据库中。
# 如果想使用LDAP服务来做认证,则设置为ldap_auth。
auth_mode = db_auth # ldap的接入点url。
ldap_url = ldaps://ldap.mydomain.com # 有权限搜索LDAP/AD服务的用户的DN(如:uid=admin,ou=people,dc=mydomain,dc=com)。如果LDAP/AD服务部支持匿名搜索,则需要配置这个DN与ldap_search_pwd。
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com #the password of the ldap_searchdn
# 在ldap_searchdn配置的用户的密码。
#ldap_search_pwd = password #The base DN from which to look up a user in LDAP/AD
# 查找用户的最基础的DN
ldap_basedn = ou=people,dc=mydomain,dc=com # 查询过滤器,用于查找用户,确认过滤器语法是否正确。
#ldap_filter = (objectClass=person) # 在LDAP搜索时用于匹配用户的属性,可能是uid, cn, email,sAMAccountName或其他属性取决于LDAP/AD。
ldap_uid = uid # 搜索用户的范围, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE
ldap_scope = # mysql中root用户的密码,在任何生产环境使用之前请修改。
db_password = root123 # 开启或关闭自签名特性
self_registration = on # 确认UI中的js文件是否进行压缩。生产环境中,设置为on,开发环境中设置为off。
use_compressed_js = on # job服务中最大job workers数。
max_job_workers = # 通过令牌服务生成的令牌有效时间(单位:分钟),默认为30分钟。
token_expiration = # 确认当链接远程仓库时,job服务是否验证ssl证书。
# 当远程仓库使用自签名证书或不可信证书时,设置标签为off。
verify_remote_cert = on # 确认是否为注册令牌生成证书。
# 如果设置为on,prepare脚本将为正在生成的令牌生成新的根证书与私钥用于访问仓库。如果设置为off,则必须提供一个用于生成令牌的证书与私钥。
customize_crt = on # 证书组织的信息。
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = example@example.com # 此标签用于控制哪些用户具有创建项目的权限。
# 默认情况下为任何一个人,设置为"adminonly"后仅管理员可以创建项目。
project_creation_restriction = everyone # nginx需要的cert与key文件路径,仅当协议设置为https时生效。
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

启动

./prepare
docker-compose up -d    #注意与宿主机的端口冲突(3306,80)
./install.sh

如果报如下错误信息

docker 私有仓库之Harbor搭建与使用

解决办法:

pip install docker-compose
./install.sh

docker 私有仓库之Harbor搭建与使用

安装成功如图

docker 私有仓库之Harbor搭建与使用

但是docker login 10.10.10.11 时提示:

docker 私有仓库之Harbor搭建与使用

解决办法:

修改/usr/lib/systemd/system/docker.service文件,
添加--insecure-registry 10.10.10.11

docker 私有仓库之Harbor搭建与使用

然后从新加载和重启 docker

[root@bogon docker]# systemctl daemon-reload
[root@bogon docker]# systemctl restart docker.service

docker 私有仓库之Harbor搭建与使用

测试:

docker 私有仓库之Harbor搭建与使用

build并启动
docker-compose up -d
docker-ccompose down #关闭
harbor启动与关闭命令: docker-compose start
docker-compose stop 删除harbor
docker-compose rm

Harbor使用

新建项目

docker 私有仓库之Harbor搭建与使用

docker 私有仓库之Harbor搭建与使用

本地先要pull下要上传的镜像进行tag打包

docker login 10.10.10.11
docker tag nginx 10.10.10.11/test/nginx
docker push 10.10.10.11/test/nginx

docker 私有仓库之Harbor搭建与使用

查看

docker 私有仓库之Harbor搭建与使用