1. Harbor简介
Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势:
- 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以
用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定
传输的对象。 - 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界
面可以支持登陆、搜索功能,包括区分公有、私有镜像。 - 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分
解。 - 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,
具有更好的安全性。
官网地址:https://goharbor.io/
2. Harbor安装
在安装Harbor之前,需要先安装Docker和docker-compose,安装教程可参考:《Docker入门,这里没有废话》。
Harbor下载地址:https://github.com/goharbor/harbor/releases,本教程使用的是:1.10.1版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E80kD8nA-1590408705221)(assets/Harbor下载地址.png)]
github下载不是一般的慢,所以当然要非常贴心的给你们准备好百度云下载地址(提取码:wa3z)
2.1 上传并解压
tar -zxf harbor-offline-installer-v1.10.1.tgz
2.2 修改配置
进入harbor
目录,使用vim harbor.yml
修改以下配置项:
hostname: 192.168.1.17
port: 85
###并把https注释掉,不然在安装的时候会报错:ERROR:root:Error: The protocol is https but attribute ssl_cert is not set
#https:
#port: 443
#certificate: /your/certificate/path
#private_key: /your/private/key/path
2.3 安装
./prepare
./install.sh
2.4 启动
# 启动
docker-compose up -d
# 停止
docker-compose stop
# 重新启动
docker-compose restart
2.5 访问
浏览器访问http://192.168.1.17:85
,默认账号和密码:admin/Harbor12345
3. 创建项目和用户
3.1 项目
Harbor的项目分为公开和私有的:
- 公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目。
- 私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。
这里,我们创建一个minimall
私有项目:
3.2 用户
切换到系统管理->用户管理->新建用户。
3.3 给项目分配用户
4. 把镜像上传到harbor
- 给镜像打上标签
docker tag docker-compose_registry-server 192.168.1.17:85/minimall/docker-compose_registry-server
- 推送镜像
docker push 192.168.1.17:85/minimall/docker-compose_registry-server
如果是报以下错误,是因为Docker没有把Harbor加入信任列表。
The push refers to repository [192.168.1.17:85/minimall/docker-compose_registry-server]
Get https://192.168.1.17:85/v2/: http: server gave HTTP response to HTTPS client
- 把harbor地址加入Docker信任列表
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.17:85"]
}
重启docker即可。
- 再次推送镜像,会提示权限不足
denied: requested access to the resource is denied
- 权限不足,我们需要先登录harbor
docker login -u admin -p Harbor12345 192.168.1.17:85
- 登录成功之后,再推送镜像
5. 从harbor下载镜像
从harbor下载镜像,要确保已经登录harbor。
docker pull 192.168.1.17:85/minimall/docker-compose_registry-server