docker的企业级仓库管理harbor安装

实验环境

软件:
Centos7.4
harbor-1.2.2
docker version 17.12.0-ce
docker compose 1.17.1
机器IP地址:
172.16.10.65
172.16.10.64

软件下载地址:
docker-compose下载:https://github.com/docker/compose/releases/
harbor下载:https://github.com/vmware/harbor/releases
使用harbor的离线下载包 harbor-offline-installer-v1.2.2.tgz

实践(支持CA加密)

1,解压harbor包

tar xf harbor-offline-installer-v1.2.2.tgz

2,进入文件夹

[root@myregistry home]# ls harbor
ca.crt  docker-compose.clair.yml   harbor_1_1_0_template  LICENSE  yourdomain.com
ca.key  docker-compose.notary.yml  harbor.cfg             NOTICE   yourdomain.com.crt
ca.srl  docker-compose.yml         harbor.v1.2.2.tar.gz   prepare  yourdomain.com.csr
common  extfile.cnf                install.sh             upgrade  yourdomain.com.key
[root@myregistry home]# cd harbor

3,修改配置文件 harbor.cfg

所需参数:
  • host:目标主机的主机名,用于访问用户界面和注册表服务。它应该是目标机器的IP地址或完全限定的域名(FQDN),例如192.168.1.10reg.yourdomain.com不要使用localhost127.0.0.1为主机名 - 注册表服务需要由外部客户端访问!
  • ui_url_protocol:(httphttps,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https
  • db_password:用于db_auth的MySQL数据库的根密码。更改此密码以供任何生产使用!
  • max_job_workers :(默认值为3)作业服务中复制工作的最大数量。对于每个映像复制作业,工作人员将存储库的所有标记同步到远程目标。增加这个数字允许系统中有更多的并发复制作业。但是,由于每个工作人员消耗一定数量的网络/ CPU / IO资源,请根据主机的硬件资源,仔细选择此属性的值。
  • customize_crt:(打开关闭,默认打开打开此属性,准备脚本创建私钥和根证书,用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时,将此属性设置为off
  • ssl_cert:SSL证书的路径,仅当协议设置为https时才应用
  • ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
  • secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。
  • log_rotate_count:日志文件在被移除之前被轮转log_rotate_count次。如果计数为0,则删除旧版本而不是旋转。
  • log_rotate_size:日志文件只有在长度大于log_rotate_size字节的情况下才会进行旋转。如果大小后面跟着k,则大小假定为千字节。如果使用M,则大小以兆字节为单位;如果使用G,则大小以千兆字节为单位。所以大小100,大小100k,大小100M和大小100G都是有效的。

若只想配置http方式,则对于配置文件只需修改host为域名或者IP地址即可,跳过步骤4

若想配置https访问则继续

4,生成自己的CA证书,

创建您自己的CA证书:

openssl req \
    -newkey rsa:4096 -nodes -sha256 -keyout ca.key \
    -x509 -days 365 -out ca.crt

生成证书签名请求:
如果使用像reg.yourdomain.com这样的FQDN 连接注册表主机,则必须使用reg.yourdomain.com作为CN(通用名称)。否则,如果您使用IP地址连接您的注册表主机,CN可以是任何类似您的名字等等:

  openssl req \
    -newkey rsa:4096 -nodes -sha256 -keyout yourdomain.com.key \
    -out yourdomain.com.csr

生成注册表主机的证书:
如果您使用的是像reg.yourdomain.com这样的FQDN 来连接您的注册表主机,请运行以下命令以生成注册表主机的证书:

  openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt

如果你使用的是IP,比如172.16.10.65连接你的注册表主机,你可以运行下面的命令:

  echo subjectAltName = IP:172.16.10.65 > extfile.cnf

  openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com.crt

获取crt和key文件之后可以将它们放在特定的目录,名称自拟:

cp yourdomain.com.crt /home/registry/certs/domain.crt
cp yourdomain.com.key /home/registry/certs/domain.crt

编辑harbor.cfg,更新三个参数:

ui_url_protocol = https

ssl_cert = /home/registry/certs/domain.crt 
ssl_cert_key = /home/registry/certs/domain.key

5,执行install.sh程序

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

加载过程需要稍等一会。
6,启动harbor,

[root@myregistry harbor]#  docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use `docker stack deploy`.

Creating network "harbor_harbor" with the default driver
Creating harbor-log ... 
Creating harbor-log ... done
Creating harbor-adminserver ... 
Creating harbor-db ... 
Creating registry ... 
Creating harbor-db
Creating harbor-adminserver
Creating harbor-adminserver ... done
Creating harbor-ui ... 
Creating harbor-ui ... done
Creating harbor-jobservice ... 
Creating harbor-jobservice
Creating nginx ... 
Creating nginx ... done

注意

1,修改配置文件和harbor重启
修改配置文件完毕后,为Harbour生成配置文件:

  ./prepare

如果Harbor已经在运行,请停止并删除现有的实例。您的图像数据保留在文件系统中

  docker-compose down  -v 

-v表示删除容器对应的数据卷
最后重启Harbour:

  docker-compose up -d

2,登录方式

  1. 打开浏览器并输入地址,它应该显示Harbor的用户界面。

  2. 在具有Docker守护进程的机器上,确保选项“-insecure-registry”不存在,并且您必须将上述步骤中生成的ca.crt复制到/etc/docker/certs.d/reg.yourdomain.com(或您的注册表主机IP),如果该目录不存在,请创建它。如果您将nginx端口443映射到另一个端口,则应该创建目录/etc/docker/certs.d/reg.yourdomain.com:port(或您的注册表主机IP:端口)。
    登录上传image示例:

[root@myregistry harbor]# docker login 172.16.10.65
Username (admin): 
Password: 
Login Succeeded
[root@myregistry harbor]# docker tag ubuntu 172.16.10.65/library/ubuntu
[root@myregistry harbor]# docker pull 172.16.10.65/library/ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:7c308c8feb40a2a04a6ef158295727b6163da8708e8f6125ab9571557e857b29
Status: Image is up to date for 172.16.10.65/library/ubuntu:latest

3,时间同步
若client 和servie时间不同步则会发生下面问题

[root@localhost guest]# docker login 172.16.10.65                                            Username: admin
Password: 
Error response from daemon: Get https://172.16.10.65/v2/: x509: certificate has expired or is not yet valid

方法:
同步时间

ntpdate 1.cn.pool.ntp.org

简单使用

1,登录


image.png

2,创建用户


image.png

image.png

3,添加项目


image.png

image.png

参考文档:
https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

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

推荐阅读更多精彩内容