如何​使用harbor构建registry
更新:HHH   时间:2023-1-7


Registry:注册服务器,用于管理镜像仓库,起到的是服务器的作用。

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能,欢迎使用和反馈意见。

作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

第一步:安装docker compose【在epel和extra源中】

1)配置yum源

[root@host1 ~]# vim /etc/yum.repos.d/epel.repo 
[epel]
name=epel
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/
enabled=1
gpgcheck=0

2)安装docker-compose

[root@host1 ~]# yum install docker-compose

第二步:下载和安装harbor

1)下载路径

https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.4.tgz

2)解压

[root@host1 ~]# tar xf harbor-offline-installer-v1.5.4.tgz 
[root@host1 ~]# mv harbor /usr/local/

3)编辑配置文件

[root@host1 ~]# vim /usr/local/harbor/harbor.cfg

修改其中的一行 hostname,指定成自己的主机名

hostname = host1

4)启动harboor

  • 启动harbor其实就是启动yaml中定义的容器
  • 容器依赖的镜像在harbor目录下tar.gz中
  • 因此启动容器的过程,就是讲tar.gz内容解压,导入,最后启动容器的过程
    安装docker-compose【extra和epel源】
    [root@host1 ~]# yum install docker-compose

    启动docker服务

    [root@host1 harbor]# ./prepare 
    [root@host1 harbor]# ./install.sh 

    5)登录harbor

  • 默认用户是admin
  • 密码密码在harbor配置文件中,是Harbor12345

    第三步:使用harbor

    1)创建两个项目:公开和非公开的



    2)向nginx项目推送镜像


    3)给镜像打标签

    [root@host2 ~]# docker tag nginx:1.14-alpine  172.16.100.3/nginx/nginx:v1-1
    [root@host2 ~]# docker tag nginx:1.14-alpine 172.16.100.3/nginx/nginx:v1-2
    [root@host2 ~]# docker tag nginx:1.14-alpine 172.16.100.3/nginx/nginx:v1-3
  • 在推送的时候可以推送一个具体的镜像,也可以将nginx仓库下的所有镜像都推送上来
  • 对于私有仓库,需要要登录才能推送
  • 如果harbor用的是http协议,就必须修改docker的配置文件,让docker可以信任这个http协议的仓库站点
    4)修改docker配置文件,信任docker仓库
    {
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://mzxx8xy8.mirror.aliyuncs.com"
    ],
    "hosts": ["tcp://0.0.0.0:3725", "unix://var/run/docker.sock"],
    "insecure-registries": [
        "host2:5000",
        "http://172.16.100.3"
    ]
    }

    5)登录docker仓库,并推送

    [root@host1 ~]# docker lognin http://172.16.100.3  ^C
    [root@host1 ~]# 
    [root@host1 ~]# docker push 172.16.100.3/nginx/nginx
返回云计算教程...