前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建harbor仓库

搭建harbor仓库

作者头像
kevinfaith
发布2020-01-21 10:31:35
1.5K0
发布2020-01-21 10:31:35
举报
文章被收录于专栏:kevin-blogkevin-blog

学习docker的途中,怎么能少了牛逼的harbor呢,先说说harbor是什么吧,harbor: Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目(Harbor 提出的概念),基于官方 Registry V2 实现。 通过地址:https://github.com/vmware/harbor/releases 可以下载最新的版本。 官方提供了两种版本:在线版和离线版。

准备:

Python、Docker和Docker Compose python需要2.7以上的版本 然后docker我用的是docker18.06.1-ce Docker Compose-1.22.0 安装方式我之前的博客里有提到,也可以百度自行搜索

安装:

Harbor 可以通过以下两种方式之一安装:

  • 在线安装程序:安装程序从Docker集线器下载Harbour的映像。因此,安装程序的尺寸非常小。
  • 脱机安装程序:当主机没有Internet连接时,请使用此安装程序。安装程序包含预制图像,因此其大小较大。 然后Harbor最新的版本是1.6.2 然后从官方的github地址下载,速度感人,我挂了速度也很慢,然后我就找了一个谷歌的1.5.1的安装包地址。 具体安装步骤如下
  • 下载安装程序;
  • 配置ports.cfg ;
  • 运行install.sh来安装和启动Harbor;

下载

代码语言:javascript
复制
➜  wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.1.tgz
➜  tar xvf harbor-online-installer-v1.5.1.tgz

配置Harbor 配置参数位于文件harbor.cfg中。 配置文件分为必选参数和可选参数,字面意思 必选参数:

  • hostname:目标主机的主机名,用于访问UI和注册表服务。它应该是目标机器的IP地址或完全限定域名(FQDN),例如192.168.1.10reg.yourdomain.com。不要使用localhost127.0.0.1为主机名 – 注册表服务需要外部客户端访问!
  • ui_url_protocol:(http或https。默认为http)用于访问UI和令牌/通知服务的协议。如果启用公证,则此参数必须为https。默认情况下,这是http。要设置https协议,请参阅使用HTTPS访问harbor
  • db_password:用于db_auth的MySQL数据库的根密码。更改此密码以供任何生产用途!
  • max_job_workers:(默认值为3)作业服务中的最大复制工作数。对于每个映像复制作业,工作程序将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定数量的网络/ CPU / IO资源,请根据主机硬件资源选择该属性的值。
  • customize_crt:(打开或关闭,默认为打开)当此属性打开时,准备脚本将为注册表令牌的生成/验证创建私钥和根证书。当密钥和根证书由外部源提供时,将此属性设置为off。有关详细信息,请参阅自定义密钥和harbor令牌服务证书
  • ssl_cert:SSL证书的路径,仅当协议设置为https时才应用
  • ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
  • secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。

可选参数:

  • 电子邮件设置:Harbor需要这些参数才能向用户发送“密码重设”电子邮件,只有在需要该功能时才需要这些参数。另外,请注意,在默认情况下SSL连接时没有启用-如果你的SMTP服务器需要SSL,但不支持STARTTLS,那么你应该通过设置启用SSL email_ssl = TRUE。
  • 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_admin_password:管理员的初始密码。该密码仅在Harbor 第一次启动时生效。之后,此设置将被忽略,并且应在UI中设置管理员的密码。请注意,默认用户名/密码为admin / Harbor12345。
  • auth_mode:使用的身份验证类型。默认情况下,它是db_auth,即凭据存储在数据库中。对于LDAP身份验证,请将其设置为ldap_auth。重要提示:从现有的Harbor 实例升级时,必须确保auth_modeharbor.cfg在启动新版本的Harbor之前是一样的。否则,升级后用户可能无法登录。
  • ldap_url:LDAP端点URL(例如ldaps://ldap.mydomain.com)。 仅当auth_mode设置为ldap_auth时才使用。
  • ldap_searchdn:具有搜索LDAP / AD服务器权限的用户的DN(例如uid=admin,ou=people,dc=mydomain,dc=com)。
  • 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,电子邮件或其他属性。
  • ldap_scope:搜索用户的范围,1-LDAP_SCOPE_BASE,2-LDAP_SCOPE_ONELEVEL,3-LDAP_SCOPE_SUBTREE。默认值为3。
  • self_registration:(开或关,默认为开)启用/禁用用户注册自己的能力。禁用时,只能由管理员用户创建新用户,只有管理员用户才能在海港创建新用户。 注意:当auth_mode设置为ldap_auth时,自注册功能始终被禁用,并且该标志被忽略。
  • token_expiration:令牌服务创建的令牌的到期时间(以分钟为单位),默认值为30分钟。
  • project_creation_restriction:用于控制用户有权创建项目的标志。默认情况下,每个人都可以创建一个项目,设置为“adminonly”,以便只有admin才能创建项目。
  • verify_remote_cert:(上或关闭,默认为上)该标志,判断是否验证SSL / TLS证书时码头与远程注册表实例通信。将此属性设置为off可绕过SSL / TLS验证,SSL / TLS验证通常在远程实例具有自签名或不受信任的证书时使用。

修改完配置文件以后

代码语言:javascript
复制
➜  sudo ./prepare
➜  docker-compose up -d

也可以直接

代码语言:javascript
复制
➜  sudo ./install

然后等一会就完成了 如果你80端口已经被占用了,想换一个,修改docker-compose.yml里proxy的端口映射,然后执行

代码语言:javascript
复制
➜  docker-compose down -v
➜  docker-compose up -d 

然后浏览器打开http://ip:port 登录,默认管理账号是admin/Harbor12345(配置文件的harbor_admin_password:)

使用

首先在harbor上新建一个项目text,之后在本地的docker配置文件下面修改

代码语言:javascript
复制
➜  vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://vw0w4qo0.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.31.57"]  //添加这一行,地址是harbor主机的ip
}

接着重启服务

代码语言:javascript
复制
➜  systemctl restart docker

➜  docker login 192.168.31.150
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

给镜像打tag

代码语言:javascript
复制
➜  docker tag zuolan/resume:latest 192.168.31.150/test/zuoloan/resume:0.0.1

其中test是项目名称,后面的是介绍,作者/内容:版本

上传

代码语言:javascript
复制
➜  docker push 192.168.31.150/test/zuoloan/resume:0.0.1

拉取镜像也是一样

代码语言:javascript
复制
➜  docker pull 192.168.31.150/test/zuoloan/resume:0.0.1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备:
  • 安装:
  • 使用
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档