Centos7上Docker仓库Harbor的搭建

来源:互联网 发布:java线程源码 编辑:程序博客网 时间:2024/06/01 18:58

之前一直使用开源的registry作为Docker的镜像仓库。Docker registry使用比较简单,但是没有用户管理机制、没有操作的记录功能、也没有展示界面等。

对于企业级的Docker镜像仓库,网上都推荐VMware的开源项目Harbor。这两天在测试环境搭建了一下,发现配置安装非常的简单;Web界面也非常漂亮直观。下面简单记录下自己的搭建过程。

0 环境准备

软件名 版本号 linux Centos7.2 docker 1.10 docker-cmopose 1.8.0 python 2.7

上述软件的安装就不说明了。

1 修改harbor配置文件
harbor的安装包可以在github上下载。我使用的是harbor 0.5.0版本:harbor-offline-installer-0.5.0.tgz,下载安装包后解压后的目录结构如下(下文中的命令默认都在这个目录下执行):
这里写图片描述

文件夹下面有一个harbor.cfg的配置文件。这个配置文件里面有很多配置项,各项的说明可以参考github的说明文档,我主要只配置两个:

#设置域名hostname = hub.mydomain.com#设置访问协议ui_url_protocol = https

1) hostname
可以指定服务器IP,也可以使用域名。个人建议使用域名。
2) ui_url_protocol
默认使用的是http,可以配置为https。

2 运行prepare脚本生成配置
修改并保存harbor.cfg配置文件之后,运行prepare脚本以生成配置文件:
这里写图片描述
如果运行正常的话,会看到类似上图的配置生成结果。

3 执行docker-compose启动harbor
执行命令为:

docker-compose up -d

第一次运行的时候,由于要下载相关组件的docker镜像,需要花一段时间。如果网络不好的话,可能会出现下载镜像超时的问题。我第一次执行的之后下载超时了,后来又试了一下成功下载并运行了起来:
这里写图片描述

从上图可以看出,如果运行成功,会启动6个容器:

  • harbor-log
  • harbor-ui
  • registry
  • harbor-db
  • harbor-jobservice
  • nginx

之后停止或启动harbor的话,可以使用命令:

#停止docker-compose stop#启动docker-compose start

4 访问harbor界面
接下来就可以访问harbor界面了。比如上述harbor.cfg使用hub.mydomain.com域名进行配置的,配置下hosts或DNS之后,在浏览器访问栏直接输入该域名访问即可。我配置了https,所以访问链接会被自动跳转到https://hub.mydomain.com。harbor首页界面如下:
这里写图片描述
之前配置文件中账号没做修改的话,默认使用admin/Harbor12345可以登录。

5 docker服务器上配置ca.crt证书
在服务器上若想通过docker login命令登录harbor仓库的话,还需要将harbor服务器上的crt证书(./common/config/nginx/cert/server.crt)拷贝到/etc/docker/certs.d/hub.mydomain.com/ca.crt,然后重启docker服务。这时候使用命令docker login hub.mydomain.com,按照提示正确输入harbor上存在的username和password就会看到登录成功的回显信息。

另外,如果配置文件中的hostname不是使用域名,而是使用服务器ip的情况,还需要再docker的配置文件中添加–insecure-registry server_ip的参数,否则会报错的。

1 0
原创粉丝点击