harbor介绍(复制来的):
Harbor是VMware公司开源了企业级Registry项目, 其的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,额外提供了如下功能:
基于角色的访问控制(Role Based Access Control)
基于策略的镜像复制(Policy based image replication)
镜像的漏洞扫描(Vulnerability Scanning)
AD/LDAP集成(LDAP/AD support)
镜像的删除和空间清理(Image deletion & garbage collection)
友好的管理UI(Graphical user portal)
审计日志(Audit logging)
RESTful API
部署简单(Easy deployment)
项目地址:https://github.com/goharbor/harbor
从release里下载Harbor online installer在线安装版。
目前最新版下载地址为:https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz
1、先安装docker及docker-compose(harbor部署脚本通过服务编排实现),过程略。
# 解压 harbor
[root@localhost ~]# tar zxvf harbor-online-installer-v1.7.4.tgz
# 编辑 harbor.cfg 只修改下面几行即可
[root@localhost harbor]# vi harbor.cfg hostname = hub.xxx.com # 绑定自己的域名,便于docker pull \ push的时候输入地址。 ui_url_protocol = https # 启用https协议,否则docker在pull的时候会提示http不安全需要https(要么每个docker机器手动加入信任,嫌弃麻烦)。 ssl_cert = /data/cert/214290856400784.pem # ssl公钥,这里直接用阿里云颁发的免费域名证书(原先配置文件里是crt文件,pem也可以) ssl_cert_key = /data/cert/214290856400784.key # ssl私钥,这俩证书服务编排的时候会加载到容器的nginx中。 secretkey_path = /data # 秘钥路径 harbor_admin_password = 111111 # web界面登陆admin用户的密码
# 创建秘钥目录,把阿里云的证书文件放进去
[root@localhost harbor]# mkdir -p /data/cert [root@localhost harbor]# ll /data/cert/ total 8 -rw-r--r-- 1 root root 1678 Apr 2 09:53 214290856400784.key -rw-r--r-- 1 root root 3662 Apr 2 09:53 214290856400784.pem
# 开始服务编排
[root@localhost harbor]# sh install.sh 成功后会显示 ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at https://hub.xxx.com. For more details, please visit https://github.com/goharbor/harbor .
访问 https://hub.xxx.com 默认用户名 admin,密码上面设置的。
左上侧有个项目菜单,新建项目 可以用来区分不同的项目所用到的镜像,便于分类管理。
我这里新建了一个test项目(注意不要公开,否则任何人知道地址后都可以拉取了),测试上传镜像。
# 给本地镜像打标签并push到私库
[root@localhost ~]# docker tag 45d8d2f74278 hub.xxx.com/test/java8:0402 # 这个地方注意加上test(等于项目是一个目录) 0402是标记TAG,今天的日期便于区分 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/registry latest f32a97de94e1 3 weeks ago 25.8 MB docker.io/goharbor/redis-photon v1.7.4 611d1ead0a28 4 weeks ago 99.7 MB docker.io/goharbor/harbor-registryctl v1.7.4 723aed7bbf8d 4 weeks ago 102 MB docker.io/goharbor/registry-photon v2.6.2-v1.7.4 f4743bd7b0d9 4 weeks ago 86.7 MB docker.io/goharbor/nginx-photon v1.7.4 dda34e6afafe 4 weeks ago 35.9 MB docker.io/goharbor/harbor-log v1.7.4 bf4916eef530 4 weeks ago 81.4 MB docker.io/goharbor/harbor-jobservice v1.7.4 1b6a0445ae9c 4 weeks ago 84.1 MB docker.io/goharbor/harbor-core v1.7.4 e603b8750d26 4 weeks ago 95.6 MB docker.io/goharbor/harbor-portal v1.7.4 2ca1d845cafa 4 weeks ago 40.6 MB docker.io/goharbor/harbor-adminserver v1.7.4 5706c65d65dc 4 weeks ago 72.3 MB docker.io/goharbor/harbor-db v1.7.4 08d163f732f3 4 weeks ago 136 MB hub.xxx.com/java8 0402 45d8d2f74278 5 months ago 1.21 GB hub.xxx.com/java8 latest 45d8d2f74278 5 months ago 1.21 GB hub.xxx.com/test/java8 0402 45d8d2f74278 5 months ago 1.21 GB
# 登陆私库测试推送
[root@localhost harbor]# docker login -u admin -p 111111 hub.xxx.com Login Succeeded [root@localhost ~]# docker push hub.xxx.com/test/java8:0402 The push refers to a repository [hub.xxx.com/test/java8] 5f70bf18a086: Pushed bba5ae3ca8bd: Pushed 28a4db706758: Pushed 8215ed96e346: Pushed 6831dc86bfcf: Pushed 4cdc463b402d: Pushed 0402: digest: sha256:318cce2a9d4dfccf96c74ac1f6a146406950d961dd96da6b5cc187e034ca29c4 size: 3641
刚开始还挺纠结这个作者名字从哪里来的,后来一想是当时用dockerfile构建镜像时配置文件里MAINTAINER这个参数控制的。这个镜像还是2018年在docker1.7.1版本下做的。
# 退出登陆,测试未登录状态下能否拉取私库镜像
[root@localhost harbor]# docker logout hub.xxx.com Removing login credentials for hub.xxx.com [root@localhost harbor]# docker pull hub.xxx.com/test/java8:0402 Trying to pull repository hub.xxx.com/test/java8 ... repository hub.xxx.com/test/java8 not found: does not exist or no pull access
提示镜像不存在或没有拉取权限。
系统管理 里面的功能暂未研究。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4293.html