Skip to content
← 返回Docker列表
实践公司适用历史记录

公司适用 · 请结合本文的项目背景与团队约定使用。

历史记录 · 保留原版本与环境,供查阅参考。

Harbor 私有仓库配置与公司镜像发布记录 ​

公司历史实践:包含内部镜像仓库、项目名与发布记录。文中同时出现 harbor.cfg 和 harbor.yml,属于不同版本配置格式,不应混用。

Harbor ​

官网

搭建 ​

需要安装docker 、 docker-compose

  • 下载可执行文件下载链接
  • 修改配置文件
    • harbor.yml.tmpl 改为harbor.yml
    • 修改内容、hostanme、db、是否启用ssl(不启用的话就注释掉https内容)
  • 运行./install.sh

harbor.cfg ​

config
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
# hostname = 192.168.126.162

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = 123456

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 <sample_admin@mydomain.com>
email_ssl = false

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = 123456

# 认证方式,这里支持多种认证方式,如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

推送 ​

shell
/opt/gomod/example.invalid/demo/sample-service(demo-dev) » docker login 127.0.0.1 
Authenticating with existing credentials...
Login Succeeded

docker build -t 127.0.0.1/demo/demo/sample-service . 
/opt/gomod/example.invalid/demo/sample-service(demo-dev) » docker push 127.0.0.1/demo/demo/sample-service
The push refers to repository [127.0.0.1/demo/demo/sample-service]
3cd134c4f257: Pushed 
c96776dc9aa6: Pushed 
b6848af24fca: Pushed 
ead684e80a15: Pushed 
123497168191: Pushed 
f566c57e6f2d: Mounted from demo/sample-service 
latest: digest: sha256:1111111111111111111111111111111111111111111111111111111111111111 size: 1571

docker pull 127.0.0.1/demo/demo/sample-service:latest

/opt/gomod/example.invalid/demo/sample-service(demo-dev) » docker run -itd --name sample-service -p 10083:10083/tcp -e RUN_AID="3" -e RUN_TCP="0.0.0.0:10083"  127.0.0.1/demo/demo/sample-service:latest 
Unable to find image '127.0.0.1/demo/demo/sample-service:latest' locally
latest: Pulling from demo/demo/sample-service
8cae0e1ac61c: Already exists 
3707ce4e4471: Pull complete 
89a72a64ecc1: Pull complete 
2ae4fb1660bf: Pull complete 
044a8a764706: Pull complete 
bd189e8b931f: Pull complete 
Digest: sha256:1111111111111111111111111111111111111111111111111111111111111111
Status: Downloaded newer image for 127.0.0.1/demo/demo/sample-service:latest
4d4d87d5982aab80f6e52098d3c1773a6c269fbfcdad9197b7a0804fd87b84cc

继续阅读