此文章假设读者已经知道Harbor的用途,仅对Harbor在CentOS7下搭建进行讲解,并通过push与pull进行测试,每一步都经亲手测试,请放心阅读~
据说,只是据说,Harbor需要安装在有docker与docker-compose的运行环境上,于是我们需要先安装docker与docker-compose
一、安装docker运行环境
1、安装依赖工具包
# 最近yum总有些捣蛋,如果提示yum lock,可以通过rm -rf /var/run/yum.pid进行解锁
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、查看可安装的docker版本
# 当然,如果你足够自信的话可以不需要查看版本直接安装
sudo yum list docker-ce --showduplicates

查看可安装的docker版本
4、安装docker
sudo yum install docker-ce-18.06.3.ce-3.el7 -y

安装完成
5、查看下版本
# 主要是想验证下安装是否成功
docker -v
6、开启远程访问
这句总感觉哪里不对,现在都systemctl了,怎么还在搞service
vim /lib/systemd/system/docker.service
# 找到ExecStart行,修改成下边这样
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

就这样儿,别问我为啥,我也不知道
# 重启一下docker,使配置生效
systemctl restart docker
7、放行一下防火墙
sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
sudo firewall-cmd --reload
# 使用curl验证一下
curl localhost:2375

验个证
8、验证远程访问是否成功
使用浏览器访问:http://10.5.25.102:2375/version,注意:10.5.25.102是我虚拟机的IP,2375是放行的端口,显示如下图:

成功了
二、安装docker-compose
1、安装
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

安装完成
PS:早知道一步就安完了就不单独列一章了……
2、修改权限
chmod +x /usr/local/bin/docker-compose
三、安装Harbor
我安装时最新版似乎是出来到2.3,但公司安装的是1.9,So,我安装个2.0就可以了~
1、获取压缩包
# 没有wget就用yum wget安装下~
wget https://storage.googleapis.com/harbor-releases/release-2.0.0/harbor-offline-installer-latest.tgz

速度太快,不小心下载了两个……
2、解个压
tar -xvf harbor-offline-installer-latest.tgz

解了个鸭~
3、修改配置
作大了,下个这版本发现和两个参考文章的都不一样儿,先给虚拟机做个快照,硬搞吧……
# 进入解压目录
cd ./harbor/
# 从模板复制个配置文件出来
cp ./harbor.yml.tmpl ./harbor.yml
# 编辑下配置文件
vim ./harbor.yml
修改下,地址,端口与密码

看红框
3、开始安装
# 开装
sh ./install.sh

没成功,忘关ssl了

关了先
# 再装
sh ./install.sh

似乎成功了
4、验证
curl localhost:80

成功了
打开浏览器,访问10.5.25.102,如下图:

访问登录页
5、登录
用户名:admin
密码:Harbor12345(刚刚配置文件中的)

登录成功
6、校验组件状态
# 在Harbor安装文件的所在目录执行即可,需要docker-compose.yml文件
docker-compose ps

状态
至少要这几个,我配置的时候就遇到postgresql没启来导致登录不成功,后来用docker start手动启动容器,才登录进去的
PS:也可分别查看组件日志

对于未启动的手动启动一下
cd /var/log/harbor/

相应日志
7、开机自启
systemctl daemon-reload && systemctl enable docker && systemctl restart docker
四、镜像推送
1、创建个用户先

This is me~
2、再建个项目

也可以用原有的

点击进入项目管理

不小心弄成了私有的,在这里改一下
3、为项目添加成员

把我加进来

加完如此
4、查看推送命令
先查看一下推送命令,如下图:

我们用第一种就好
5、登录
docker login -u xin.li -p Ab@123456 http://10.5.25.102

不成功
修改下客户端配置
vim /etc/docker/daemon.json
# 加入如下内容,由于未配置加速器,所以如下:
{
"insecure-registries":["10.5.25.102"]
}
# 重启docker与守护进程
systemctl daemon-reload
systemctl restart docker

登录成功
6、在docker.io上先拉个镜像到本机
# 在客户端拉个镜像下来
docker pull nginx

拉了个nginx
7、修改镜像tag
# 修改为服务器要求格式
docker tag nginx:latest 10.5.25.102/demo/nginx:latest

查看镜像
# 修改tag
docker tag nginx:latest 10.5.25.102/demo/nginx:latest
# 再次查看images
docker images

就推它了
8、开推
docker push 10.5.25.102/demo/nginx:latest

推送成功
登录服务器端查看

推送成功
查看镜像

虽然感觉哪里不对,但的确成功了
五、镜像拉取
1、查看拉取命令

复制即可
2、客户机上执行拉取
由于使用的是同一台客户机,先删除镜像再拉取

加了-f才删掉
拉取

拉取成功
3、查看镜像

版本号不见鸟……
4、启动容器
docker run -d --name mynginx -p 80:80 4cdc
本机使用curl进行测试
curl localhost:80

成功
其他机器使用浏览器测试:http://10.5.25.126

成功
all done~
PS:本来想今晚早碎的,看来又失败了,唉~
参考文献:感谢
1、https://www.jianshu.com/p/7e44556ddc08