一步一步教会搭建harbor仓库

AI 摘要 / TL;DR

一步一步教会搭建harbor仓库 点击上方“IT那活儿 ”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! harbor概述 容器技术越来越或火,越成熟,容器应用的开发和运行始终离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也

来源: https://www.ucloud.cn/yun/129361.html 作者: IT那活儿 发布日期: 发布于2023-01-11 13:19

一步一步教会搭建harbor仓库

点击上方“IT那活儿**”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!**

harbor概述

容器技术越来越或火,越成熟,容器应用的开发和运行始终离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也是非常必要的。

所以Harbor孕育而生,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

Harbor的主要功能

  • **基于角色的访问控制:**用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • **基于镜像的复制策略:**镜像可以在多个Registry实例中复制(可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能),尤其适合于负载均衡,高可用,混合云和多云的场景。
  • **图形化用户界面:**用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
  • **审计管理:**所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • **部署简单:**提供在线和离线两种安装工具, 也可以安装到vSphere平台虚拟设备。

harbor搭建

1. 搭建准备

2. 开始搭建

2.1 docker安装

将安装包文件上传到服务器目录并解压。

将解压出来的docker文件内容移动到 /usr/bin/ 目录下。

将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。

添加文件权限并启动docker,执行如下命令。

安装成功,查看版本。

2.2 docker-compose安装

上传docker-compose并复制到/usr/bin/目录下,并给执行权限。

安装成功,查看版本。

2.3 harbor安装

上传harbor压缩包,并解压。

进入harbor目录给予以下文件执行权限:

修改harbor.yml文件。

注:以实际行数为准,只供参考。

  • 修改第五行 hostname 为主机ip或域名;
  • 注释第13行 https;
  • 注释第15行 port: 443;
  • 修改第34行 harbor_admin_password,设置一个admin用户的密码;
  • 修改第47行 data_volume,修改harbor的数据目录;
  • 修改第120行 location,修改harbor的日志目录。

启动harbor,执行harbor目录下的install.sh文件:

验证是否成功。

在/etc/docker/下创建daemon.json文件,并配置阿里镜像加速以及修改harbor地址为可信任源。

通过浏览器搜索在harbor.yml里设置的hostsname进行访问。

默认密码为:admin/Harbor12345。

harbor维护

容器功能
harbor-core配置管理中心
harbor-dbPG数据库
harbor-jobservice负责镜像复制
harbor-log记录操作日志
harbor-portalWeb管理页面和API
nginx前端代理,负责前端页面和镜像上传/下载转发
redis会话
registryctl镜像存储
  • 容器数据持久化目录(可更改):/data
  • 日志文件目录(可更改):/var/log/harbor
  • 数据库做好定期备份。

配置harbor主从复制

1. 主备

  • 简单,主挂了切到备Harbor;
  • 同一时间只有一台提供服务;
  • 适合少量镜像下载。

2. 双主

  • 双向配置复制;
  • 两台同时提供服务;
  • 前面增加负载均衡器。

3. 一主多从

  • 多个从同步主;
  • 适合多地区业务、大量镜像下载需求。

4. 主从配置步骤

  • 提供者:选择Harbor;
  • 目标名:自定义,可填一个具有声明意义的名称;
  • 描述:自定义,可备注目标仓库的一些信息;
  • 目标URL:对端仓库的地址;
  • 访问ID:目标仓库的用户名;
  • 访问密码:访问ID的密码;
  • 验证远程证书:如果对端用的是自签证书或者非信任证书的话不要勾选此项。

  • 名称:自定义,有声明意义;

  • 描述:自定义,备注规则中仓库信息;

  • 复制模式

    Push-base****d:从本地仓库推送到远程仓库,双主模式两个harbor同时配置;

    Pull-based:从远程仓库拉去到本地仓库,一主多从模式的从库可配置,主从模式从库可配置;

  • 目标仓库/源仓库:对端仓库地址,在仓库管理中添加;

  • 资源过滤器:指定根据什么来同步;

  • 触发模式:一般选择事件驱动,这样主库已更新就会同步。

docker基础命令使用以及镜像下载上传

1. 主机连接harbor仓库命令

docker login 目标仓库地址:端口

输入账号密码:

2. 退出连接

docker logout 目标仓库地址:端口

3. 从docker仓库下载任意镜像

docker pull 镜像名称。

4. 查看下载镜像

docker images

5. 查看已启动的镜像

docker ps  -a=历史启动过的镜像。

6. 镜像重命名

docker tag 原镜像名称 仓库地址/项目名称/镜像:镜像版本。

7. 上传镜像到私有仓库及验证

docker push 仓库地址/项目名称/镜像:镜像版本。

本文作者:罗 啸(上海新炬王翦团队)

本文来源:“IT那活儿”公众号