Harbor搭建和使用

背景

项目组之前使用的镜像仓库机器被释放,所以需要搭建自己的镜像仓库。本文主要记录下如何搭建Harbor镜像仓库。

环境准备

本次用于搭建harbor镜像仓库的机器配置如下(这个是在我自己机器搭建的,客户端和服务器都是用的一台机器,开发环境使用的suse服务器)

操作系统

macOS Monterey

内存

16GB

磁盘

512GB

CPU

4

机器需要安装docker以及docker-compose,我本地的版本如下,这边对应的版本要求可以自己参考Harbor官网:

Docker version 20.10.10, build b485636

docker-compose version 1.29.2, build 5becea4c

安装包获取

本次搭建的Harbor版本是v2.5.0,是目前最新的releases版本。我选择的是离线安装的方式。下载地址:https://github.com/goharbor/harbor/releases

harbor高可用部署架构图 harbor 搭建_推送

Harbor安装

下载完成安装包,执行解压命令

tar -zxvf harbor-offline-installer-v2.5.0.tgz

解压目录

harbor高可用部署架构图 harbor 搭建_推送_02


修改harbor.yml.tmpl,将hostname修改为本机的ip地址,同时本次搭建使用的是http方式,需要将https部分注释掉

harbor高可用部署架构图 harbor 搭建_推送_03


重命名harbor.yml.tmpl文件为harbor.yml

mv harbor.yml.tmpl harbor.yml

执行install脚本,安装过程大概十多分钟

./install.sh

安装结束之后,可以通过ip地址访问Harbor镜像仓库,使用默认的账号和密码(admin/Harbor12345)

harbor高可用部署架构图 harbor 搭建_docker_04

推送和拉取镜像

首先在Harbor上新建项目,访问级别设置为公开

harbor高可用部署架构图 harbor 搭建_docker_05


由于docker默认是https的,需要修改机器上的docker配置文件,添加–insecure-registry {ip} ,添加受信任的仓库地址

harbor高可用部署架构图 harbor 搭建_推送_06


登录Harbor服务器

docker login 192.168.1.104

推送和拉取镜像

  1. 创建一个dockerfile文件
FROM logstash:7.14.2
  1. 生成镜像,这边注意镜像标签的格式,{ip}/{项目名称}/{镜像名称}:{镜像标签}
docker build -t 192.168.1.104/common/logstash:7.14.2 .
  1. 推送镜像
docker push 192.168.1.104/common/logstash:7.14.2
  1. 拉取镜像
docker pull 192.168.1.104/common/logstash:7.14.2

其他

  1. 由于harbor默认的存储路径是/data目录,所以需要在服务器根目录新增一个/data。macOS在根路径下新增目录需要修改/etc/synthetic.conf文件,添加目录映射关系,类似软链接,并且需要重启系统才能生效。
  2. 如果镜像推送和拉取时出现Error:error contacting notary server: dial tcp 192.168.1.104:443: connection refused 类似这种情况,可以通过设置unset DOCKER_CONTENT_TRUST不校验证书解决,不过这种做法不推荐。

参考

https://goharbor.io/docs/2.5.0/install-config/https://github.com/goharbor/harbor