云计算课程第四次实验-搭建harbor仓库

子任务一:

(1)基于Harbor搭建私有仓库,并运行一个java应用程序/Python应用程序的镜像打包、发布

(2)基于docker对上述镜像进行下载、运行和测试验证

本篇内容基于Ubuntu20.04.5,安装harbor v1.1.2。过程中解决了安装harbor v1.1.2出现的各种问题,在此做一个记录,可作为参考。

目录

一、基于harbor搭建私有仓库,并实现一个java应用程序/Python应用程序的镜像打包、发布

1.什么是harbor

2.安装docker

3.下载docker-compose

4.安装harbor并进行配置

5.启动harbor

6.Harbor仓库使用

7.实现java/python应用程序的镜像打包与发布

二、基于docker对上述镜像进行下载、运行和测试验证

三、参考资料

一、基于harbor搭建私有仓库,并实现一个java应用程序/Python应用程序的镜像打包、发布

1.什么是harbor

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问的控制权限管理(RBAC)、AD/LDAP集成、日志审核、管理界面、自我注册、镜像复制和中文支持等。Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,额外提供了如下功能:

1)基于角色的访问控制(Role Based Access Control)
2)基于策略的镜像复制(Policy based image replication)
3)镜像的漏洞扫描(Vulnerability Scanning)
4)AD/LDAP集成(LDAP/AD support)
5)镜像的删除和空间清理(Image deletion & garbage collection)
6)友好的管理UI(Graphical user portal)
7)审计日志(Audit logging)
8)RESTful API
9)部署简单(Easy deployment)

Harbor的所有组件都在Dcoker中部署,所以Harbor可使用Docker Compose快速部署。需要特别注意:由于Harbor是基于Docker Registry V2版本,所以docker必须大于等于1.10.0版本,docker-compose必须要大于1.6.0版本!
参考内容:私有仓库Harbor介绍与部署_假面生的博客-CSDN博客

2.安装docker

由于虚拟机上已经安装了docker,检查一下docker的版本

(docker版本不能小于1.10.0)

3.下载docker-compose

开始安装docker-compose

出现了如下的错误

挂梯子,再试一次之后成功

二进制文件赋可执行权限

查看docker-compose是否安装成功

出现版本信息,已经安装成功

4.安装harbor并进行配置

在根目录下创建harbor文件夹并进入

按照步骤使用yum安装wget的时候,遇到了这样的问题

根据查找资料,yum无法支持ubuntu的软件包体系,而且ubuntu默认也没有准备yum的数据库,两方面导致了yum无法在ubuntu上进行使用

使用 apt install wget安装wget

使用wget获取harbor

获得之后,在根目录下的harbor文件夹中就有了harbor-online的installer压缩包

解压缩以后查看,多出来了一个harbor文件夹

接下来进行harbor的配置

进入刚解压出来的harbor文件夹下

查看一下harbor文件夹中的内容

使用vim工具打开harbor.cfg

内容如上,每个字段的含义都在蓝色英文注释中解释了

我进行的修改如下:

修改hostname:

这是访问地址

查询我的虚拟机ip地址为192.168.163.128

于是将hostname设置为192.168.163.128

补充,后面修改了网卡信息

修改db_password:

这是mysql数据库的密码,实际使用一般设置成123456

修改harbor_admin_password:

这是启动harbor之后,管理员ui登录的密码。

5.启动harbor

修改完配置文件以后,在当前目录执行./install

出现如下问题,找不到文件或文件夹

搜索了一下,可以找到在usr/bin下的python,判断可能是软连接出现问题

因此先删除软连接,后进行重新连接

解决了python找不到的问题

继续./install.sh

出现了如上的问题

原因是在python中,十进制整数不能以0作为开头

打开这个prepare文件,修改它的源代码

接下来还有很多因为这个问题需要修改的地方,在此进行记录:

在执行时,遇到新的问题:

把600前面的空格删了

发现还是会报这个错

仔细想了一下,python中是需要使用tab制表符进行缩进

因此我重新调整了一下prepare文件中的代码缩进,最终成功运行成功

看到绿绿的东西真的很开心5555555555555555

查看一下docker的镜像,发现了许多以vmware开头的服务,这些就是harbor的内容

查看一下harbor启动的镜像与服务

启动完成后,访问刚设置的hostname即可,默认是80端口,如果端口占用,可以去修改docker-compose.yml文件中,对应服务的端口映射

刚刚设置的hostname192.168.163.128,端口是80

对此进行访问,能够打开web harbor

6.Harbor仓库使用

用户名使用admin

密码使用刚刚配置文件中设置的123456

登录后的展示页面

新建一个项目

点击上图中蓝色字体的+project

在此创建了一个名称为myharbor的项目,没有点击public公开

当项目设为公开后,任何人都有此项目下镜像的读权限,命令行用户不需要docker login就可以拉取此项目下的镜像。

创建好仓库之后,可以点开仓库,显示如下内容:

7.实现java/python应用程序的镜像打包与发布

过程中重启了虚拟机

再打开时发现服务都处于exit状态

使用docker-compose up命令启动服务

现在已将服务启动

以前做项目有一个jar包,正好拿来进行docker 的镜像制作

想用共享文件夹的方式把文件传上来

但发现一开始配置的可以使用的共享文件夹现在用不了了

觉得可能是因为重启了虚拟机的原因

通过下述的办法进行了解决

Vmware共享文件夹不显示_vmware共享文件夹看不到_强_子的博客-CSDN博客

上述的操作即进行重新挂载

对照着上面的博客,对于命令进行了修改与调整,最终成功了

现在就能看到主机共享到虚拟机的jar包了

接下来对将jar包制作成docker镜像

在jar包旁边创建一个dockerFile

打开dockerFile

在dockerFile中写入如上图所示内容

接下来使用docker build构建镜像

这条命令需要在dockerFile的目录下使用

-t是设置tag的意思,在此我设置为1.0.0

正在构建成镜像的过程图:

构造成功后结果图:

构建完成以后,查看我们的docker中是否已经存在test/coan-back-end的镜像

可以看到现在jar包已经被制作成docker的镜像了

打包成镜像之后,可以push到仓库

首先登陆到192.168.163.128

连接被拒绝

将harbor加入docker信任列表

       配置完成后重加载配置

重新加载配置没用,还是需要重启docker

重启docker以后,再将docker-compose重启

再次登录便成功了

对要上传至harbor仓库的镜像进行修改tag操作

执行推送命令

推送成功

现在打开harbor就能看到内容了

二、基于docker对上述镜像进行下载、运行和测试验证

当前我的docker中,有这些镜像

为了验证下载,我将test/coan-back-end进行删除

删除过程中出现问题,原因是镜像被多个从库引用

原因是,如果两个镜像的id是相同的,使用docker rmi 【镜像id】就会报错

那么可以使用docker rmi 【镜像名:版本号】进行删除

上面的命令也出现了一些问题,最后用docker rmi 89e删除成功,

89e即image id前三位

最后删掉了两个本地的coan-back-end

下载harbor上的coan-back-end

下载完成,看看本地是否出现

本地再次出现了coan-back-end 1.0.0,表明下载成功

至此实验完成

三、参考资料

(206条消息) Harbor的镜像上传和拉取_if年少有为的博客-CSDN博客

(206条消息) Harbor仓库搭建及简单使用_harbor的简单使用_邋遢的流浪剑客的博客-CSDN博客

(206条消息) 将jar包打包为docker镜像_将jar包打包成docker镜像_Jarbein的博客-CSDN博客

Docker Dockerfile | 菜鸟教程 (runoob.com)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值