Yuandupier

Yuandupier

Harbor搭建和使用

29
0
0
2022-04-27

背景

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

环境准备

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

操作系统macOS Monterey
内存16GB
磁盘512GB
CPU4

机器需要安装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安装

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

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

解压目录 在这里插入图片描述 修改harbor.yml.tmpl,将hostname修改为本机的ip地址,同时本次搭建使用的是http方式,需要将https部分注释掉 在这里插入图片描述 重命名harbor.yml.tmpl文件为harbor.yml

mv harbor.yml.tmpl harbor.yml

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

./install.sh

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

推送和拉取镜像

首先在Harbor上新建项目,访问级别设置为公开 在这里插入图片描述 由于docker默认是https的,需要修改机器上的docker配置文件,添加--insecure-registry {ip} ,添加受信任的仓库地址 在这里插入图片描述 登录Harbor服务器

docker login 192.168.1.104

推送和拉取镜像

  1. 创建一个dockerfile文件

    FROM logstash:7.14.2
    
  2. 生成镜像,这边注意镜像标签的格式,{ip}/{项目名称}/{镜像名称}:{镜像标签}

    docker build -t 192.168.1.104/common/logstash:7.14.2 .
    
  3. 推送镜像

    docker push 192.168.1.104/common/logstash:7.14.2
    
  4. 拉取镜像

    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