搭建harbor
1.简介
Harbor(港湾)是一个用于存储Docker镜像的企业级Registry服务,提供了可视化的界面
我们这里选择安装harbor-v2.7.0
2.环境安装
我的服务器:CentOS(192.168.232.129) 要求:至少 2G-CPU 40G-硬盘
安装harbor需要先安装Docker和Docker Compose(Docker的容器编排工具)
2.1 安装Docker
安装之前,要注意一下harbor-v2.7.0版本,要求Docker版本17.06.0+
如果当前版本低于这个版本,需要安装高版本Docker
先更新一下yum:
yum update
yum仓库添加阿里云docker资源(正常无需额外添加,当yum找不大坡docker资源的情况下添加):
curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
如果已经安装过了,查询一下版本信息:
一些查看命令:
docker --version rpm -qa | grep docker #通过yum安装的Docker,可用这样查相关安装组件
我本地查询结果如图:
删除干净,重新安装Docker
yum remove docker docker-common docker-client docker-compose-plugin #删除干净 yum list docker-ce --showduplicates | sort -r #查看可用docker版本 yum install -y docker-ce-18.06.0.ce-3.el7 #指定版本安装Docker
2.2 安装Docker Compose
这是Docker的容器编排工具,通过.yml文件进行容器编排
yum install -y docker-compose #compose目前没有版本冲突,直接装即可
docker-compose --version
3.Harbor 安装
到Harbor官网下载最新版本,这里选择V2.7.0 离线安装版
这个官网是海外地址,很容易下载不下来,建议下载到本地后,再上传到服务器。
下载地址:
https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
我的存放目录:
/mysoft/harbor-offline-installer-v2.7.0.tgz
解压
tar xvzf harbor-offline-installer-v2.7.0.tgz
更改harbor.yml文件
我们会发现,harbor/只有harbor.yml.tmp1,需要copy一下
cp harbor.yml.tmp1 harbor.yml
根据自己的需求进行配置更改,至少需要修改hostname为服务器IP/域名,不启动https的话记得注销相关配置,如图
完成修改!!!
进行harbor 安装,再harbor目录下,执行
./install.sh
正常完成后,会下载相关镜像和启用容器服务
如果无法成功启动,界面会打印错误信息,根据信息进行调整,我就遇到step5 启动harbor失败的情况,手动启动后成功了,命令如下
查看harbor运行状态(在harbor目录下执行命令)
docker-compose ps #查看harbor容器运行情况 docker-compose down -v #停止harbor docker-compose up -d #启动harbor
访问Harbor
Success
4.测试Harbor
4.1用户服务器
新创建一个用户服务器(192.168.232.128),安装好Docker环境,
并pull一个镜像,或者自己build一个镜像
(我这里是使用自己build的.net core3.x项目的镜像,操作方法见链接,镜像命名:myapi:V1.0)
4.2Harbor项目配置
使用admin登录,密码在harbor.yml
用户管理新建一个用户:kxy,用户&密码自定 (PS:提供给服务器128访问Harbor使用)
创建项目:v5,名字自定
并将kxy添加为项目管理员
4.3服务器128登录Harbor
[root@localhost /]# docker login 192.168.232.129:80 #不添加端口号会默认https:443 Username: kxy Password:
4.3.1一些有可能发生的错误
1)
Error response from daemon: Get https://192.168.232.129/v1/users/: dial tcp 192.168.232.129:443: connect: no route to host
提示错误,需要添加一个守护进程注册表配置
vim /etc/docker/daemon.json 添加:"insecure-registries": ["192.168.232.129:80"] #切记,一定要带端口号,即使是默认的80
重启Docker
systemctl daemon-reload
systemctl restart docker
2)
502 Bad Gateway
重启Harbor
=======================================
重新登录
[root@localhost /]# docker login 192.168.232.129:80 Username: kxy Password: Login Succeeded
4.4服务器128推送镜像到Harbor
标识:将最开始准备的镜像myapi:V1.0修改tag,加上host和项目信息(记住得加上端口号,不然推送不了)
docker tag myapi:V1.0 192.168.232.129:80/v5/myapi:V1.0
推送
[root@localhost /]# docker push 192.168.232.129:80/v5/myapi:V1.0 The push refers to a repository [192.168.232.129:80/v5/myapi] 179031435579: Pushed 96ff0c972f5f: Pushed 266e43c7bdef: Pushed 5ed447f74cec: Pushed dc4e06b0c38e: Pushed d1797c74036a: Pushed 7b6f75f8765b: Pushed V1.0: digest: sha256:aa17430493c7b1dd7c1ba0c5bdff2abb1d3e5c1480435176f93540fb4cd56388 size: 1791
完成!!
4.5尝试拉取
docker rmi 192.168.232.129:80/v5/myapi:V1.0 #先删除 docker pull 192.168.232.129:80/v5/myapi:V1.0 #再拉取
感谢关注!!!