Harbor的安装与使用

一、基础准备

IP地址

主机名

节点

192.168.200.10

master

容器master节点

192.168.200.11

node

容器worker节点

使用OpenStack云计算平台,创建两台云主机,镜像使用CentOS7.9(云主机配置自定义,推荐配置4vCPU/12G内存/100G硬盘),使用这两台云主机作为实验基础环境。

使用Kubeeasy工具先安装Kubernetes平台,然后使用这两个节点安装Harbor镜像仓库。

二、Harbor安装

本次安装的Harbor版本为2.3.4。在master节点执行以下命令进行Harbor仓库的安装:

[root@k8s-master-node1 ~]# kubeeasy add --registry harbor

部署完成后查看Harbor仓库状态:

[root@k8s-master-node1 ~]# systemctl status harbor

● harbor.service - Harbor
   Loaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-09-05 09:51:58 CST; 6 days ago
     Docs: http://github.com/vmware/harbor
 Main PID: 18583 (docker-compose)
    Tasks: 14
   Memory: 13.9M
   CGroup: /system.slice/harbor.service
           └─18583 /usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up

 再通过web端访问Harbor,http://master_ip

  使用管理员账号(admin/Harbor12345)登录Harbor,如图所示:

至此Harbor镜像仓库部署完毕。

三、Harbor镜像上传

这里演示两种上传方式

(一)上传至虚拟机的镜像包,上传到harbor仓库。

这里我们将提供的nginx_latest.tar上传至虚拟机的/root目录下,将镜像拉取到本地。命令如下:

[root@master ~]# docker load -i nginx_latest.tar

be8b8b42328a: Loading layer [==================>]   1.45MB/1.45MB

上传至Harbor仓库的镜像与上传至Registry仓库的镜像在打tag的时候方式不同,我们先用docker命令查询nginx的标签,命令如下:

[root@k8s-master-node1 ~]# docker images
nginx                                                   latest       f949e7d76d63   4 years ago    126MB
下面给nginx镜像重新打标签,使其可以上传至Harbor仓库中,命令如下:

[root@master harbor]# docker tag f949e7d76d63  192.168.200.11/library/nginx:latest

这种打标签的方式取消了5000端口,增加了library目录,该目录为Harbor中的默认项目目录。

在推送镜像前,首先还需要登录Harbor,具体命令如下:

[root@master harbor]# docker login -u admin -p Harbor12345 192.168.200.11

WARNING! Using --password via the CLI is insecure. Use --password-stdin.

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.

Configure a credential helper to remove this warning. See

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@master harbor]# docker push  192.168.200.11/library/nginx:latest

The push refers to repository [192.168.200.11/library/nginx]

8032102adebe: Pushed

8eb80f066de2: Pushed

7230cfe05cc1: Pushed

822ae9fef1d8: Pushed

07cab4339852: Pushed

latest: digest: sha256:416d511ffa63777489af47f250b70d1570e428b67666567085f2bece3571ad83 size: 1362

可以在Harbor界面中查看镜像是否上传成功。

(二)将阿里云私有镜像仓库中的镜像上传至Harbor

由于Docker hub关闭的原因,我们可以通过从get hub上拉取镜像到自己的私有镜像仓库,然后下载到本地。

        首先我们需要在虚拟机上登录自己的阿里云Docker Registry

然后从Registry中拉取镜像,这里以镜像·mysql:5.6为例,命令如下:

[root@k8s-master-node1 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/ipromise/mysql:5.6

在上传至Harbor前,为了方便,我们可以通过改名操作,去掉registry.cn-hangzhou.aliyuncs.com/ipromise/前缀。命令如下:

[root@k8s-master-node1 ~]# docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

改完名后我们用docker images去查询标签然后为mysql镜像重新打标签。

[root@master harbor]# docker tag  dd3b2a5dcb48 192.168.200.11/library/mysql:5.6

在推送镜像前,首先还需要登录Harbor。

[root@k8s-master-node1 ~]#  docker login -u admin -p Harbor12345 192.168.200.11
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@master harbor]# docker push  192.168.200.11/library/mysql:5.6

推送完镜像后,就可以在Harbor界面查看镜像是否上传成功。

至此将阿里云·私有镜像仓库中镜像上传至Harbor仓库成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值