Harbor搭建(二)

上一篇对Harbor做了简单介绍,这篇分享具体如何搭建。

环境准备

  • Centos :7.2
  • Docker :1.13.1
  • Docker-compose :1.21.0, build 5920eb0
  • Python :2.7.5
  • IP :192.168.1.169

软硬件配置建议

主机软件/硬件环境
Docker 1.9.1+
Linux Ubuntu 14.04+(x86_64),Centos 7+(x86_64)
CPU 4核
内存 4G+
硬盘 500G(根据镜像仓库大小配置)

docker客户端环境
Docker 1.9.1+

浏览器环境
浏览器 要求
Chrome 最新版本(建议)
Firefox 最新版本(建议)
IE 9 +

安装Harbor

制作自签证书
Docker官方是推荐采用Secure Registry的工作模式的,即transport采用tls。这样我们就需要为Registry配置tls所需的key和crt文件。
由于没有知名权威CA签署的证书文件,这里我们自己制作一个。
使用openssl工具可以很容易地生成私人证书文件

[root@iz51hzu4zdjgpnz abiao]# mkdir -p certs
[root@iz51hzu4zdjgpnz abiao]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/abiao.key -x509 -days 365 -out certs/abiao.crt
Generating a 4096 bit RSA private key
.......................................................................................++
.........................................................................................................................................................................................................................................++
writing new private key to 'certs/abiao.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GUANGDONG
Locality Name (eg, city) [Default City]:SHEN ZHEN
Organization Name (eg, company) [Default Company Ltd]:FOO
Organizational Unit Name (eg, section) []:BAR
Common Name (eg, your name or your server's hostname) []:abiao.com

生成过程会提示填入各种信息,注意CN一栏要填入跟访问的地址相同的域名,我的是:abiao.com。

生成文件

  • 秘钥文件:abiao.key
  • 证书文件:abiao.crt
    证书文件需要发送给用户,并且配置到用户Docker Host上,注意路径需要跟域名一致,例如:
/etc/docker/certs.d/abiao.com/abiao.crt

复制证书

  • 创建一个certs目录。
[root@iz51hzu4zdjgpnz abiao]# cd /opt/
[root@iz51hzu4zdjgpnz opt]# mkdir -p certs
  • 移动证书到certs目录。
[root@iz51hzu4zdjgpnz opt]# cp -rf /home/abiao/certs/* ./certs/

下载Harbour版本的二进制文件
https://github.com/vmware/harbor/releases

[root@iz51hzu4zdjgpnz opt] wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.0-rc5.tgz
[root@iz51hzu4zdjgpnz opt] tar -zxvf harbor-offline-installer-v1.5.0-rc5.tgz

Harbor 配置

[root@iz51hzu4zdjgpnz opt]# cd harbor
[root@iz51hzu4zdjgpnz harbor]# vim harbor.cfg

只需修改如下内容

hostname = abiao.com
ui_url_protocol = https
customize_crt = off
ssl_cert = /opt/certs/abiao.crt
ssl_cert_key = /opt/certs/abiao.key

安装

[root@iz51hzu4zdjgpnz harbor]#  ./install.sh

注:Harbor是通过docker-compose安装的,所以确保服务器已安装docker-compose。

Harbor 登录
如果一切正常,执行上述步骤,即可安装成功。现在通过浏览器来访问Harbor,访问地址https://192.168.1.169/harbor


默认的管理员用户名/密码是admin / Harbor12345

测试服务
这里拿安装的主机来测试服务是否正常。客户端主机访问步骤也可参考一下步骤。

修改hosts配置

[root@iz51hzu4zdjgpnz harbor]# vim /etc/hosts
192.168.1.169 abiao.com

证书文件配置到用户Docker Host上,注意路径需要跟域名一致

[root@iz51hzu4zdjgpnz opt]# cd /etc/docker/certs.d/
[root@iz51hzu4zdjgpnz certs.d]# mkdir -p abiao.com
[root@iz51hzu4zdjgpnz certs.d]# cp /opt/certs/abiao.crt ./abiao.com/

从 Docker Hub拉取 docker.io/hello-world 镜像

[root@iz51hzu4zdjgpnz opt]# docker pull hello-world
  • 登录仓库
[root@iz51hzu4zdjgpnz abiao.com]# docker login abiao.com
Username: admin
Password: 
Login Succeeded

标记镜像
将镜像标记为 abiao.com/abiao,在推送时,Docker会将其解释为仓库的位置

[root@iz51hzu4zdjgpnz abiao.com]# docker tag docker.io/hello-world:latest abiao.com/abiao/hello-world:1.0.0
  • 推送镜像
[root@iz51hzu4zdjgpnz abiao.com]# docker push abiao.com/abiao/hello-world:1.0.0
The push refers to a repository [abiao.com/abiao/hello-world]
428c97da766c: Pushed 
1.0.0: digest: sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 size: 524

浏览器端查看推送结果


错误处理
像私有仓库推送镜像时,出现如下报错

[root@iz51hzu4zdjgpnz abiao.com]# docker push abiao.com/abiao/hello-world:1.0.0
The push refers to a repository [abiao.com/abiao/hello-world]
428c97da766c: Preparing 
denied: requested access to the resource is denied

原因:
报错是因为找不到abiao的这个命名空间

解决:
在浏览器前端新建名为abiao的命名空间,再次推送就正常了。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容