搭建harbor仓库

学习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;

下载

➜  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验证通常在远程实例具有自签名或不受信任的证书时使用。

修改完配置文件以后

➜  sudo ./prepare
➜  docker-compose up -d

也可以直接

➜  sudo ./install

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

➜  docker-compose down -v
➜  docker-compose up -d 

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

使用

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

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

接着重启服务

➜  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

➜  docker tag zuolan/resume:latest 192.168.31.150/test/zuoloan/resume:0.0.1

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

上传

➜  docker push 192.168.31.150/test/zuoloan/resume:0.0.1

拉取镜像也是一样

➜  docker pull 192.168.31.150/test/zuoloan/resume:0.0.1
文章目录
  1. 1. 准备:
  2. 2. 安装:
  3. 3. 使用