一、安装Harbor

1、软件下载

软件官网:https://github.com/goharbor/harbor/releases

我下载的是版本是1.10.6

2、先将压缩包传到linux系统中

3、使用命令将压缩包解压

tar -zxvf harbor-offline-installer-v1.10.6.tgz

4、进入解压后的harbor目录下,修改harbor.yml

hostname 192.168.1.100 # 修改主机名为当前系统的IP地址
# 下面两项看情况,没有端口冲突的话用默认的就行了
port: 5000 # 由于我80端口开了其他应用,防止有冲突,就换成了5000

需要将https下面的子配置全部注释掉,如下图

habor配置文件修改

不然会报如下错误,具体意思是,你需要上传你的证书用于https加密服务,使得更安全,可是你又没有上传,并且修改默认的证书路径,所以出错了。这里我们暂时就不用它了。

https证书问题

5、修改完之后,启动harbor目录下的install.sh脚本,执行安装程序,程序会自动完成安装过程

./install.sh

如果安装过程中碰到因为其他错误而中断,可以参考这篇博客:

[https://blog.csdn.net/muzizongheng/article/details/105286453](https://blog.csdn.net/muzizongheng/article/details/105286453#8. 如果遇到报错:ERROR%3Aroot%3AError%3A The protocol is https but attribute ssl_cert is not set。 原因是harbor.yml中默认是配置https的端口及证书路径的。)

安装成功会打印如下信息:

harbor安装成功提示

5、接着就可以浏览器访问harbor首页了

默认账号密码可以在harbor.yml中可以找到

在配置文件中查看harbor初始密码

用户名是admin,密码是Harbor12345

登陆成功进入首页

二、测试向Harbor服务器推送和拉取docker镜像

1、先在Harbor服务器上新建一个测试项目

浏览器登录到Harbor主页,新建一个项目,填上项目名称,以项目名称为commons为例,存储数量和容量不设限制默认为-1,点确定。

在harbor控制台新建项目

可以在列表中项目列表看到多了一个私有的项目commons,点击项目名称,

查看新建的项目

进入项目操作界面再点击镜像仓库

harbor项目详情

最后边有推送镜像的模板,可以复制下来参考

harbor提供的推送镜像的docker命令

2、在daemon.json中加入Harbor地址

为了更好的测试效果推送的效果,我这边重新开了另外一台虚拟机,预装了dockerdocker-compose

修改/etc/docker/daemon.json文件,加入Harbor地址,让docker能找到它,内容如下:

{
  "registry-mirrors": ["https://43h8ayp0.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.1.100:5000"]
}

重启docker,并验证配置是否生效

systemctl restart docker  //重启docker
docker info

如果可以看到刚才配置的内容即生效

查看docker私服harbor地址是否添加成功

3、准备一个测试镜像

基于官方tomcat制作一个属于我自己特色的镜像candytomcat,用于后面测试推送到Harbor服务器

构建镜像Dockerfile内容如下:

FROM tomcat
# 让tomcat的首页显示“Hello Harbor”字样
RUN echo "Hello Harbor" > /usr/local/tomcat/webapps/ROOT/index.jsp

构建tomcat镜像

docker build -t candytomcat .

运行刚才构建的镜像

docker run -p 8888:8080 candytomcat -d

测试镜像运行成功,浏览器中也能打印出预期的值

制作一个可以被正常访问的镜像

从harbor上下载其他客户端的镜像可以正常运行

参考刚才在Harbor服务器中的指令为当前构建的candytomcat镜像打个标记

docker tag candytomcat:latest 192.168.1.100:5000/commons/candytomcat:latest

查看Docker镜像列表

docker images

可以看到多了一个符合Harbor服务器命名格式的镜像,到此用于测试的镜像搞定了

查看镜像创建情况

4、测试向Harbor中推送candytomcat镜像

由于刚才创建的commons项目是私有的,所以在上传前还需要进行用户登录,这里使用命令直接登录

docker login 192.168.1.100:5000 -u admin -p Harbor12345

192.168.1.100:5000/commons/candytomcat:latest 镜像上传到Harbor服务器

docker push 192.168.1.100:5000/commons/candytomcat:latest

如图上传成功

将创建好的镜像推送到harbor上保存

Harbor服务器上也可以看到这个镜像的信息

在harbor控制台查看是否上传成功

5、测试从Harbor服务下载candytomcat镜像

为了更好的测试效果拉取镜像的效果,再切换一台虚拟机

首先还是先修改/etc/docker/daemon.json文件,加入Harbor地址,内容如下:

{
  "registry-mirrors": ["https://43h8ayp0.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.1.100:5000"]
}

拉取镜像前先进行用户登录

docker login 192.168.1.100:5000 -u admin -p Harbor12345

拉取 192.168.1.100:5000/commons/candytomcat:latest 镜像

docker pull 192.168.1.100:5000/commons/candytomcat:latest

拉取成功

拉取刚才其他客户端上传的docker镜像