# Harbor私有镜像仓库
在说harbor之前,我们首先说一说直接使用docker registry的一些缺陷:
缺少认证机制,任何人都可以随意拉取及上传镜像,安全性缺失
缺乏镜像清理机制,镜像可以push却不能删除,日积月累,占用空间会越来越大
缺乏相应的扩展机制
鉴于以上缺点,我们通常在生产环境中,不会直接使用docker registry来实现提供镜像服务。而Harbor正好解决了上述所有的问题。
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Harbor官方网站:http://vmware.github.io/harbor/
Harbor源码地址:https://github.com/vmware/harbor
(摘自breezey的博客)
```shell
# 下载https://github.com/docker/compose/releases/最新版 至/root/
# cd
# chmod +x docker-compose-Linux-x86_64
# mv docker-compose-Linux-x86_64 docker-compose
# mv docker-compose /usr/local/bin/
# 下载https://github.com/vmware/harbor/releases最新版 至/opt/
# cd /opt/
# tar -xvf harbor-offline-installer-v1.4.0.tgz
# mkdir harbor/certs
# cd harbor/certs
# openssl genrsa -out /opt/harbor/certs/ca.key 2048
# 域名需要按照自己的来更改
# openssl req -x509 -new -nodes -key /opt/harbor/certs/ca.key -subj "/CN=haha.com" -days 5000 -out /opt/harbor/certs/ca.crt
# 修改harbor配置文件
# cd ..
# vim harbor.cfg
hostname = haha.com
ui_url_protocol = https
ssl_cert = /opt/harbor/certs/ca.crt
ssl_cert_key = /opt/harbor/certs/ca.key
# ./install.sh
# 浏览器登录https://192.168.11.217 验证harbor 用户名admin 密码Harbor12345
# 登录master1
# vim /etc/hosts
192.168.11.217 haha.com
# mkdir -p /etc/docker/certs.d/haha.com
# 拷贝ca.crt证书
# cd /opt/harbor/certs/
# scp ca.crt master1:/etc/docker/certs.d/haha.com
# 登录master1
# systemctl restart docker
# 验证push镜像 登录harbor1穿件test仓库
# 登录master1
# docker pull nginx
# docker tag nginx haha.com/test/nginx:v1.0
# docker login haha.com
# docker push haha.com/test/nginx:v1.0
```