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安装
下载完成安装包,执行解压命令
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
推送和拉取镜像
- 创建一个dockerfile文件
FROM logstash:7.14.2
- 生成镜像,这边注意镜像标签的格式,{ip}/{项目名称}/{镜像名称}:{镜像标签}
docker build -t 192.168.1.104/common/logstash:7.14.2 .
- 推送镜像
docker push 192.168.1.104/common/logstash:7.14.2
- 拉取镜像
docker pull 192.168.1.104/common/logstash:7.14.2
其他
- 由于harbor默认的存储路径是/data目录,所以需要在服务器根目录新增一个/data。macOS在根路径下新增目录需要修改/etc/synthetic.conf文件,添加目录映射关系,类似软链接,并且需要重启系统才能生效。
- 如果镜像推送和拉取时出现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