搭建harbor仓库

概述

反正就是想搭建一个docker仓库,方便存放自己的镜像这样子

harbor介绍

harbor是一个开源的docker容器仓库,由下面几个组件组成

  • proxy:用来接收docker客户端和浏览器端的请求,并且把请求转发给后端的服务
  • registry:就是仓库,用来存储镜像的,
  • 核心服务:提供web ui,数据库,token认证,webhook等功能
  • 日志服务
  • database:用来存储核心服务的一些数据

总之就上上面这个图这样子的架构

因为是vmware出品的,所以支持下面几种部署方式

  • 在线安装
  • 离线安装
  • ova安装,这个直接在vcenter上导入就可以了

官方最小配置

  • 2个cpu
  • 4g内存
  • 40g硬盘,因为是存储镜像的所以推荐硬盘大点

安装前配置

为了方便我是直接离线安装的,使用的系统是centos7

下载

wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz

在真正安装之前,我们还要安装下面这几个组件

  • docker
  • docker-compose
  • python27
  • openssl

首先安装docker

curl -fsSL get.docker.com -o get-docker.sh

chmod +x get-docker.sh

./get-docker.sh

systemctl start docker

之后安装docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

默认python27是安装在centos上的,openssl在安装前面东西的时候也会默认安装好的

1
2
3
[root@bboysoul ~]# rpm -qa |grep openssl
openssl-libs-1.0.2k-12.el7.x86_64
openssl-1.0.2k-12.el7.x86_64

安装

首先解压离线安装包

tar -xvf harbor-offline-installer-v1.5.1.tgz

之后配置harbor.cfg这个文件,要知道的是有的参数是可选的,就是不用配置的,有的参数是必选的,必选参数有的是有默认值的

下面是必选参数

  • hostname
  • ui_url_protocol
  • db_password
  • max_job_workers
  • customize_crt
  • ssl_cert
  • ssl_cert_key
  • secretkey_path
  • log_rotate_count
  • log_rotate_size

其余的都是可选的

我是推荐在本地搭建一个dns的服务器的,因为这样就可以设置一个域名,每次都访问ip太麻烦了,尤其是在上传镜像的时候每次都要想ip是什么

之后直接执行

./install.sh

就可以安装成功了

之后如果你想修改某一个配置比如你要把域名修改一下,我是这么做的先修改上面harbor.cfg这个文件,之后重新执行install.sh这个文件就可以了

还有修改一些端口只要修改docker-compose文件里面的端口就好了,挂载文件的路径也是一样的

安装完成之后访问你配置的域名,然后使用默认的账号:admin,密码:Harbor12345登录验证

本地配置仓库地址

首先在harbor上新建一个project,名字开行就好,之后本地配置docker的配置文件在下面这个文件加入

vim /etc/docker/daemon.json

1
2
3
4
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["harbor.bboysoul.com"]
}

接着重启服务

systemctl restart docker

登录仓库

1
2
3
4
5
6
7
8
root@bboysoul:/home/bboysoul/temp/harbor# docker login harbor.bboysoul.com
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

给镜像打tag

docker tag ubuntu:16.04 harbor.bboysoul.com/bboysoul/ubuntu:16.04

上传镜像

docker push harbor.bboysoul.com/bboysoul/ubuntu:16.04

下载镜像

首先删除本地的

docker rmi harbor.bboysoul.com/bboysoul/ubuntu:16.04

docker rmi -f ubuntu:16.04

之后pull harbor服务器上的

docker pull harbor.bboysoul.com/bboysoul/ubuntu:16.04

pull一次仓库上镜像的pulls就会加一次,可以在web界面上看的

修改harbor端口

怎么去做这个修改端口呢,首先修改docker-compose.yml中nginx的端口映射,可以修改成别的端口,之后我们使用nginx去根据域名做端口转发就可以了,不需要做其他很复杂的配置

配置邮件重置密码

安装好之后管理员登录,在系统管理->配置管理->邮箱里面有配置的地方,在配置里面可以测试邮件,我的配置如下,使用的是qq企业邮箱

  • 邮件服务器: smtp.exmail.qq.com
  • 邮件服务器端口: 465
  • 用户名: bboysoul@bboysoul.com
  • 密码: 我的密码你是不可能知道的
  • 邮件来源: bboysoul@bboysoul.com 这个一定要和用户名一样
  • 邮件 SSL: 打钩
  • 验证证书: 打钩

欢迎关注Bboysoul的博客www.bboysoul.com
Have Fun