Harbor镜像仓库安装与使用

Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势:
1. 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2. 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3. 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4. 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。

一、Harbor的安装

1.先安装docker并启动docker,如果对docker的安装不了解的可以看一下我的这篇文章

https://blog.csdn.net/axibazZ/article/details/118311181

2.安装docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/dockercompose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

3.添加docker-compose执行权限

sudo chmod +x /usr/local/bin/docker-compose

4.查看docker-compose是否安装成功

docker-compose -version

5.下载Harbor的压缩包,下载地址为https://github.com/goharbor/harbor/releases,这里下载的版本为1.9.2

6.上传压缩包到服务器,解压,并移动到/opt/harbor目录下

tar -xzf harbor-offline-installer-v1.9.2.tgz
mkdir /opt/harbor
mv harbor/* /opt/harbor

7.修改Harbor的配置

vi harbor.yml

修改hostname和port

hostname: 192.168.142.131
port: 85

8.安装Harbor

./prepare
./install.sh

9.启动Harbor

docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动

10.访问Harbor

http://192.168.142.131:85/

输入用户名密码 admi/Harbor12345(这是默认的用户名和密码,可以在harbor.yml中设置)

二、在Harbor中创建用户和项目

1.创建项目

Harbor的项目分为公开和私有的:
公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目。
私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。

创建一个csii的项目

2.创建用户,在用户管理下新建一个用户

3.将私有项目分配给用户,点击项目,选择需要添加的项目,点击成员,输入成员姓名,并分配角色,这里分配为开发人员。

角色权限说明
访客:对于指定项目拥有只读权限
开发人员:对于指定项目拥有读写权限
维护人员:对于指定项目拥有读写权限,创建 Webhooks
项目管理员:除了读写权限,同时拥有用户管理/镜像扫描等管理权限

三、把镜像上传到Harbor

1.给镜像打上标签

docker tag redis 192.168.142.131:85/csii/redis:v1

打完标签之后的镜像如下

2.推送镜像

 docker push 192.168.142.131:85/csii/redis:v1

这样就表示推送成功了

可以在Harbor服务器上看到推送的镜像

如果看到以下错误,则需要将Harbor服务添加到Docker信任列表

The push refers to repository [192.168.142.131:85/csii/redis]
Get https://192.168.142.131:85/v2/: http: server gave HTTP response to HTTPS
client

3.把Harbor地址加入到Docker信任列表中,并重启Docker

vi /etc/docker/daemon.json
#添加insecure-registries
{
  "registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.142.131:85"]
}

4.再次执行推送命令,会提示权限不足

denied: requested access to the resource is denied

5.登录Harbor

docker login -u 用户名 -p 密码 192.168.142.131:85

6.再次推送就可以成功推送。

四、从Harbor下载镜像

Harbor服务器在192.168.142.131上,我们在192.168.142.128上完成从Harbor下载镜像

1.安装Docker,并启动Docker

2.修改Docker配置,并重启Docker

vi /etc/docker/daemon.json
{
    "registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
    "insecure-registries": ["192.168.142.131:85"]
}

3.先登录,再从Harbor下载镜像

docker login -u 用户名 -p 密码 192.168.142.131:85

4.拉取镜像

docker pull 192.168.142.131:85/csii/redis:v1

拉取结果使用docker images 命令可以看到

到此,Harbor的简单使用就结束了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值