为什么要搭建私有镜像仓库
对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像推送上去,但是Docker hub提供的私有仓库个数有限。对于个人来说Docker hub是个不错的选择,但是对于企业来说,相对于安全 ,成本和公司的架构来说搭建自己的私有镜像仓库才是正确的道路。
ASP站长网什么是Harbor?为什么要选择Harbor
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
基于角色的访问控制 – 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制 – 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面 – 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
AD/LDAP 支持 – Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
审计管理 – 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化 – 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API – RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
部署简单 – 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
这就是官网原话。完美解释了什么是Harbor?为什么要选择Harbor。上面解释那么多的Harbor, 现在我们来开始安装吧。
Harbor安装
要安装Harbor,有以下几个先决条件:
Python版本大于或者等于2.7
Docker engine的版本大于等于1.10
Docker Compose的版本大于1.6.0
首先我们需要检查自己服务器是否支持上面3个条件。输入以下代码检查
#python2.7官网安装页面
https://www.python.org/downloads/release/python-2711/
#检查Python版本.Ubuntu 16.04已经集成了python2.7。
python -V
#检查Docker的版本
docker -v
#Docker Compose安装脚本
sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#检查Docker Compose的版
docker-compose –version
#如果提示Permission denied。执行以下语句赋权
sudo chmod +x /usr/local/bin/docker-compose
确保服务器上的软件版本已经满足以上要求之后。我们现在开始安装Harbor。如果不知道怎么安装docker 可以参考 https://www.linuxidc.com/Linux/2018-03/151318.htm
下载Harbor
#下载安装包
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
#解压
tar -xzf harbor-offline-installer-v1.1.2.tgz
cd harbor
#编辑配置文件
vi harbor.cfg
配置文件注释参考]
## Configuration file of Harbor
#设置访问地址,支持IP,域名,主机名,禁止设置127.0.0.1
hostname = reg.mydomain.com
#访问方式,http或者https
ui_url_protocol = http
#邮件通知相关设置
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
#用户登录密码
harbor_admin_password = Harbor12345
#harbor认证模式,默认为db_auth,本地mysql,也可以配置ldap认证
auth_mode = db_auth
#ldap认证配置
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 3
#mysql数据库设置
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
token_expiration = 30
verify_remote_cert = on
customize_crt = on
#显示的认证及组织信息
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = example@example.com
project_creation_restriction = everyone
#SSL证书地址。只有开启https访问才生效
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
#############