部署 Harbor 私有云仓库

本文档为 Harbor 私有云仓库 部署说明,通过 Harbor 服务,实现天枢平台中各类运行镜像的管理与维护,管理的镜像主要分为两类:模型开发模块中的notebook运行镜像,用于算法的在线编辑与开发功能;训练管理模块中的算法运行镜像,用于模型训练算法的运行载体。

部署

安装 docker

  • 更新 apt 包索引

    apt-get update
  • 安装以下包使 apt 可以通过 HTTPS 使用存储库

    apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  • 添加 docker 官方的 GPG 密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 设置 stable 存储库

    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 更新 apt 包索引

    apt-get update
  • 安装最新的 docker 安装包

    apt-get install -y docker-ce
  • 启动 docker 并验证

    systemctl enable docker
    systemctl start docker
    systemctl status docker

安装 docker-compose

  • 下载 docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` >/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  • 查看 docker-compose 的版本信息
docker-compose --version

安装 python 文件

apt-get update
apt-get install python2.7
apt update
apt install python-pip
pip install --upgrade pip

安装 harbor

wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.0.tgz
  • 改名、解压文件然后移动到指定文件夹下面
mv harbor-online-installer-v1.5.0.tgz harbor.tgz
tar -zxvf harbor-online-installer-v1.5.0.tgz
mv harbor /usr/local/
  • 进入 harbor 目录,修改 harbor 配置文件
cd harbor
vi harbor.cfg
1)hostname 修改为域名
2) 将 ui_url_protocol 设置为 ui_url_protocol=https
3) 创建文件夹用来存放证书 mkdir -p /data/cert
  • 进入 cert 目录生成证书
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
chmod a+x *
  • 修改 linux 的 hosts 内容
vi /etc/hosts
格式:ip地址 域名(与 harbor.cfg 里面的域名一致)
  • 修改 docker 的配置文件 daemon.json 文件(执行命令systemctl daemon-reload重新加载配置)
insecure-registries": ["https://域名"]
  • 进入 harbor 目录执行命令
./install.sh
  • 登陆到 Harbor 上面
docker login https://域名
默认账号:admin
默认密码:Harbor12345
note

如果install.sh执行过程中报错(出现于脚本执行至最后时):

Fail to generate key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt

请修改/usr/local/harbor/prepare文件第490行:

empty_subj = "/C=/ST=/L=/O=/CN=/"
#请将其修改为
empty_subj = "/"

修改完后执行:

/usr/local/harbor/install.sh

Harbor使用

要在客户机浏览器上登录Harbor, 请先配置Harbor域名解析,或者修改hosts文件进行本地解析:

Windows系统: C:\Windows\System32\drivers\etc\hosts
Linux系统: /etc/hosts

在hosts文件中添加Harbor服务器IP以及配置的Harbor域名,如:

192.168.216.147 harbor.dubhe.cn

然后在浏览器输入Harbor域名:

图 1 登录
图 1 登录
会出现您的连接不是私密连接提示,无需理会,点击高级—继续前往harbor:
图 2 登录
图 2 登录
默认登录名为admin,初始密码为Harbor12345,登录后,新建项目train(项目中要用到,请务必创建):
图 3 新建项目
图 3 新建项目
新建项目后,即可上传镜像到Harbor仓库train项目中了,流程如下:
#首先在需要上传镜像的服务器登录Harbor,执行:
$docker login https://harbor.dubhe.cn
#查看所有的镜像,执行:
$docker images
#结果如下所示
#REPOSITORY TAG IMAGE ID CREATED SIZE
#minio/minio latest ff82d4160c26 9 days ago 183MB
#alpine 3.6 43773d1dba76 2 years ago 4.03MB
#如上所示,比如我要将alpine镜像推送到Harbor仓库,先执行tag操作
#命令格式为 docker tag + 原镜像名称:原镜像版本号 + Harbor仓库域名/项目名/镜像名:版本号,如下:
$docker tag alpine:3.6 harbor.dubhe.cn/train/alpine:3.6
#然后我们就可以把新tag的镜像推送到Harbor了:
$docker push harbor.dubhe.cn/train/alpine:3.6

客户机登录Harbor,可以看到刚才tag的镜像就已经推送到Harbor仓库的train项目中了:

图 3 新建项目
图 3 新建项目
Last updated on