Docker-harbor基础与搭建

Docker-harbor基础与搭建

前言:这个harbor可不是啥哈勃望远镜,这是docker里面的一个镜像仓库。而哈勃望远镜是啥?哈勃空间望远镜(英语:Hubble Space Telescope,缩写:HST)是以美国天文学家爱德温·哈勃为名,于1990年4月24日成功发射,位与地球的大气层之上的光学望远镜。

mark

有兴趣的可以去了解下,毕竟美丽深邃的星空,与茫茫宇宙中那么多未知的奥秘的确有他独特的魅力~

以洪荒蛮神之力,强行把各位拉回到Docker-harbor上

为什么用harbor

在实际生产运维中,往往需要把镜像发布到几十、上百台或更多的节点上。这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我们需要一个像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker-Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。

与Registry对比

Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
1、提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2、提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3、支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4、良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
5、Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。

修改docker仓库地址

vi /etc/docker/daemon.json
{ "insecure-registries":["192.168.1.250:5000"] }

安装docker-compose

yum -y install epel-release
yum -y install python-pip
pip install docker-compose

下载harbor

github地址:https://github.com/goharbor/harbor/releases
cd /home/docker/harbor/
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-online-installer-v1.6.0.tgz
tar xf harbor-online-installer-v1.6.0.tgz
cd harbor

修改配置

vim harbor.cfg
#主机地址
hostname=192.168.1.250
#使用https
ui_url_protocol = https
#ssl证书位置
ssl_cert = /home/docker/certs/***.crt
ssl_cert_key = /home/docker/certs/***.key
#映射路径
secretkey_path = /home/docker/harbor/data

vim docker-compose.yml
#修改其中的-v的目录文件,如:
volumes:
  - /home/docker/harbor/log/harbor/:/var/log/docker/:z
volumes:
  - /home/docker/harbor/data/registry:/storage:z
volumes:
  - /home/docker/harbor/data/database:/var/lib/mysql:z
volumes:
  - /home/docker/harbor/data/config/:/etc/adminserver/config/:z
  - /home/docker/harbor/data/secretkey:/etc/adminserver/key:z
  - /home/docker/harbor/data/:/data/:z
volumes:
  - ./common/config/ui/app.conf:/etc/ui/app.conf:z
  - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z
  - ./common/config/ui/certificates/:/etc/ui/certifates/
  - /home/docker/harbor/data/secretkey:/etc/ui/key:z
  - /home/docker/harbor/data/ca_download/:/etc/ui/ca/:z
  - /home/docker/harbor/data/psc/:/etc/ui/token/:z
volumes:
  - /home/docker/harbor/data/job_logs:/var/log/jobs:z
  - ./common/config/jobservice/app.conf:/etc/jobservice/app.conf:z
  - /home/docker/harbor/data/secretkey:/etc/jobservice/key:z
#修改端口号;因为使用https,只需要修改443的映射即可
ports:
  - 82:80
  - 5000:443

修改./common/config/registry/config.yml中的realm的地址;
auth:
token:
    issuer: harbor-token-issuer
    realm: https://192.168.1.250:5000/service/token

启动

./install.sh

访问地址

192.168.1.250:5000
admin   Harbor12345

登录查看

mark

小结:harbor这个仓库还是很好用的,就和哈勃望远镜一样,都是功能强悍的工具。好了,扯不下去了,要看哈勃望远镜的自己百度去吧~

mark

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章