Harbor简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源DockerDistribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
特性:
基于角色的访问控制 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
部署Harbor
环境描述:
CentOS 7
IP: 192.168.100.10
主机名:harbor
1、关闭防火墙、SELinux
2、环境
[root@habor ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 harbor
[root@habor ~]# python -V
Python 2.7.5
[root@harbor ~]# yum install -y epel-release
[root@habor ~]# yum install -y docker docker-compose
[root@habor ~]# systemctl start docker
[root@habor ~]# systemctl enable docker
下载harbor离线安装包 harbor-offline-installer-v1.4.0.tgz https://github.com
3、解压缩harbor包,编辑配置文件harbor.cfg
[root@habor ~]# tar xf harbor-offline-installer-v1.4.0.tgz
[root@habor ~]# cd harbor/
[root@habor ~]# vim harbor.cfg
hostname = harbor.linux.com
ui_url_protocol = http
4、准备配置文件
[root@habor ~]# cd harbor/
[root@habor ~]# ./prepare
5、建立harbor网络、启动harbor; 此处需要联网下载harbor相关镜像
[root@habor ~]# docker-compose up -d
[root@habor ~]# docker-compose start
6、打开浏览器访问harbor,默认用户名为admin, 密码为Harbor12345
http://192.168.100.10/
7、harbor默认行为通过https上传镜像,可修改docker配置文件将其修改为http的方式
[root@habor ~]# vim /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry harbor.linux.com'
[root@habor ~]# systemctl restart docker
8、测试上传、下载镜像
1) 创建项目
2) docker tag
[root@harbor ~]# docker tag local.io/centos harbor.linux.com/test/centos
3) docker push
[root@harbor ~]# docker login harbor.linux.com
Username: admin
Password:
Login Succeeded
[root@harbor ~]# docker push harbor.linux.com/test/centos
[root@harbor ~]# docker logout harbor.linux.com