对于一个刚刚接触Docker的人来讲,官方的Docker hub是用于管理公共镜像。既然官方提供了镜像仓库咱们为何还要去本身搭建私有仓库呢?虽然也能够托管私有镜像。咱们能够很是方便的把咱们本身镜像推送上去,可是Docker hub提供的私有仓库个数有限。对于我的来讲Docker hub是个不错的选择,可是对于企业来讲,相对于安全 ,成本和公司的架构来讲搭建本身的私有镜像仓库才是正确的道路。html
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,经过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。做为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提高用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像所有保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。node
部署简单 - 提供在线和离线两种安装工具, 也能够安装到vSphere平台(OVA方式)虚拟设备。
这就是官网原话。完美解释了什么是Harbor?为何要选择Harbor。上面解释那么多的Harbor, 如今咱们来开始安装吧。python
要安装Harbor,有如下几个先决条件:
Python版本大于或者等于2.7
Docker engine的版本大于等于1.10
Docker Compose的版本大于1.6.0mysql
首先咱们须要检查本身服务器是否支持上面3个条件。输入如下代码检查git
#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 能够参考我博客以前的文章。传送门github
#下载安装包 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 #############
以上按照本身需求修改。若是想开启https模式访问须要本身申请ssl证书。harbor默认监听80端口。若是须要修改端口。请修改目录下的docker-compose.yml文件,
修改完成以后。运行sql
sudo ./install.sh
进行安装。安装完成以后他会本身启动。这里他会本身下载一些他所需的images。过程有点慢。能够经过阿里云的镜像加速器来加速。阿里云镜像加速器 .打开连接登陆以后点击镜像加速。而后你会获得一个专属加速地址。如图
能够根据本身的环境查看文档安装使用。而后等待命令执行结束。
docker
若是使用http的这里能够跳过,咱们把已经申请好的证书文件放到/data/cert 目录下面。而后修改harbor.cfg文件数据库
安装成功以后打开以前本身设定的域名或者IP地址。测试地址 。测试用户名:harbor_test,测试密码:Harbor_test123
浏览器
harbor已经建立成功。如今咱们来开始建立一个用户。
建立项目,并添加用户
首先使用docker login命令登陆:
#登陆 robin:~ robin$ sudo docker login shepherd618.cn Username: admin Password: Login Succeeded #查看本地镜像 robin:docker_demo robin$ sudo docker images Password: REPOSITORY TAG IMAGE ID CREATED SIZE docker_demo latest fdd994bee741 19 seconds ago 283MB node 8.9-alpine 406f227b21f5 2 weeks ago 68.1MB #给dcoker_demo新增tag robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo #push images robin:docker_demo robin$ docker push shepherd618.cn/test/demo The push refers to repository [shepherd618.cn/test/demo] f8387a884f73: Layer already exists d74f9d9e7013: Pushed f846841ed47f: Layer already exists 0198944a9875: Layer already exists 9dfa40a0da3b: Layer already exists latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374
而后打开harbor,会看到刚刚上传的images和操做日志
当咱们须要用到这个images的时候能够经过上面给的pull命令下载到本地。到此整个安装过程结束。