做了那么多操作,其实目的就只有一个,搭建我们的私有仓库,后面好好维护,将自己经常要用的镜像保存下来,方便下次再次使用。

1、环境准备

操作系统推荐使用Ubuntu。

安装harbor前需要先安装Docker和docker-compose环境

我这次搭建是在PVE开了一台独立的虚拟机用来放镜像的,磁盘还是挂载在nas上,因为NAS使用了RAID,数据还是比较安全的。

图片

2、harbor离线安装包下载和编辑

2.1 harbor安装包下载

harbor离线安装包在

https://github.com/goharbor/harbor/releases官网仓库下载

图片

2.2 解压

harbor离线安装包安装完成后,将安装包上到你的liunx服务器系统。

图片

使用tar 命令将离线安装包解压,会得到harbor文件。然后是进入harbor里面对里面的配置进行修改

图片

tar -xvzf harbor-offline-installer-v2.13.2.tgz

2.3 修改配置

1、harbor.yml配置

将harbor.yml.tmpl的模版文件拷贝出来进行修改

cp harbor.yml.tmpl harbor.yml

使用vim打开harbor.yml文件

vim harbor.yml

修改以下几处配置

图片

修改完使用【:wq!】 回车退出

2、修改prepare*文件

为什么要修改这个文件呢,因为harbor启动需要依赖到一些镜像,这些镜像在docker默认官方仓库无法下载,我们改为自己在CNB云构建pull下来的镜像。关于如何云构建,可以参考我的另外一篇文章。

图片

vim prepare

图片

3、修改docker-compose.yml

docker-compose.yml也是将默认的镜像改为我们自己构建,我一样是使用自己在云构建产生的镜像。

修改docker-compose.yml文件,将原来的goharbor/xxxxx:v2.13.2。替换成docker.cnb.cool/qingxueline360/docker-images-chrom/xxxxx:v2.13.2。我们可以直接使用查找替换命令来完成。

操作前,养成良好习惯,操作前先对文件进行备份 cp docker-compose.yml docker-compose.yml.back

使用vim全局查找替换命令

:%s/goharbor/docker\.cnb\.cool\/qingxueline360\/docker-images-chrom/goharbor/gc

全部替换后如下图。

图片

3、下载harbor的依赖镜像

上面我们已经将默认的依赖镜像替换成了我们自己的了,此时你执行启动,是启动不了的。我们需要将自己制作的镜像拉到本地,此时才能构建。因为我们已经提前将依赖执行制作好了,所有这里我直接使用命令pull下来就好。关于在CNB制作的,可以关注我的另外一篇文章小白都会用,一个网址,解决你拉docker镜像问题快到起飞。使用CNB云构建下载docker镜像

图片

以下是我在CNB做好的制品,现在你只需要使用以下命令将镜像pull下来就行。

docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-nginx-photon:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-redis-photon:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-jobservice:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-portal:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-core:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-db:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-registryctl:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-registry-photon:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-harbor-log:v2.13.2
docker pull docker.cnb.cool/qingxueline360/docker-images-chrom/goharbor-prepare:v2.13.2

图片

4、启动harbor

4.1 执行 prepare 脚本

在 Harbor 安装过程中,prepare 脚本是一个非常重要的步骤。它主要用于生成配置文件和证书等相关操作。这个脚本会根据 harbor.yml 配置文件中的内容,为 Harbor 的部署做前置准备工作。

进入到harbor目录下,执行脚本直接使用以下命令即可

./prepare

4.2 执行docker-compose.yml脚本

依赖镜像pull完后,就可以执行命令运行构建harbor了。

图片

执行docker-compose构建容器

docker-compose -f docker-compose.yml up -d

图片

看到这样就表示全部成功了,使用docker ps查看就行了

图片

访问管理后台:使用浏览器访问 http://主机 ip:80 地址.比如我的是172.16.10.2:80

图片

默认用户名和密码你没有修改过的话,用户名是admin,密码是Harbor12345

5、harbor使用

5.1 创建用户

使用admin登录后,创建用户,并设置为管理员

图片

5.2 创建用户仓库

图片

5.3 使用docker 登录仓库

5.3.1 修改docker仓库地址

先要修改docker的json文件,将私仓库加入进去

在/etc/docker增加daemon.json文件

vim /etc/docker/daemon.json

文件内容如下:

{
        "insecure-registries":["172.16.10.2:80"]
}

5.3.2 使用docker登录仓库

使用docker login 登录仓库

docker login 172.16.10.2:80

图片

5.4 推送镜像到私仓

5.4.1 给本地镜像打标签

推送镜像的时候先使用docker tag 将本地镜像在本地打一个标签

docker tag <镜像ID或源镜像名> <仓库地址/命名空间/镜像名>:<标签>

如下:

图片

我将IMAGE ID的镜像,打了个标签,输出结果如下

图片

5.4.2 将打好标签的镜像推送到远程私有仓库

docker push <镜像标签> ,这是推送镜像的命令,我们直接使用推送上面打好标签的镜像即可。

docker push 172.16.10.2:80/qxl/goharbor-redis-photon:v2.13.2 

图片

这样就可以在账号下的项目看到自己推送的镜像了

图片

5.5 下载镜像

下载镜像直接使用docker pull <镜像标签> 即可

docker pull 172.16.10.2:80/qxl/goharbor-redis-photon:v2.13.2

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐