使用Harbor搭建docker私有仓库管理系统

一、环境与介绍

Docker容器的使用场景越来越广泛了,Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

Harbor的部署一般分为两种离线和在线,我们使用离线的方法部署一下:

部署环境:CentOS 7.5.1804、docker 1.13.1、docker-compose1.22.0、Harbo/1.6.1。

二、安装与配置

1、安装docker-compose

       sudo yum install epel-release -y

       sudo yum install python-pip -y

       sudo pip install --upgrade pip

       sudo pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose

       sudo docker-compose version

       使用Harbor搭建docker私有仓库管理系统

2、下载harbor

      sudo wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz

      sudo tar -zxvf harbor-offine-installer-v1.6.1.tgz -C /usr/local

3、生成证书

      默认docker中都使用https安全的方式进行拉取和提交镜像的,最好在部署的时候一劳永逸直接部署https方式访问。默认证书的配置文件为/data/cert,需要手动创建该目录。

      cd /data/cert/

      创建 CA 根证书

      sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=sz/O=yourdomain/CN=harbor-registry"

      生成一个证书签名, 设置访问域名为 reg.yourdomain.com

      sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.yourdomain.com.key -out server.csr -subj "/C=CN/L=sz/O=yourdomain/CN=reg.yourdomain.com"

      生成主机的证书

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

4、Harbor配置文件更改

      进入harbor目录修改harbor.cfg文件

      cd /usr/local/harbor   

      hostname= reg.yourdomain.com

      ui_url_protocol = https   #修改协议为https,默认http;

      ssl_cert = /data/cert/reg.yourdomain.com.crt   

      ssl_cert_key = /data/cert/reg.yourdomain.com.key

5、Harbor安装

      执行install.sh脚本

      ./install --with-clair      #--with-clair是漏铜扫描器

      有四步:

使用Harbor搭建docker私有仓库管理系统 使用Harbor搭建docker私有仓库管理系统 使用Harbor搭建docker私有仓库管理系统

最后提示安装成功并已经运行;

查看容器镜像

sudo docker images

使用Harbor搭建docker私有仓库管理系统

登录Harbor

设置hosts文件

linux是/etc/hosts

windows是C:\Windows\System32\drivers\etc\hosts

添加192.168.108.20  reg.moko.xyz   #ip填写主机IP

浏览器登录https://reg.moko.xyz

使用Harbor搭建docker私有仓库管理系统登录账号,账号密码在harbor.cfg中:

使用Harbor搭建docker私有仓库管理系统

同时还可以注册账号成为注册用户同样可以pull与push镜像

6、push与pull

push步骤:

docker login host   #登录私有仓库

注:在具有Docker守护进程的机器上,确保选项“-insecure-registry”不存在,并且您必须将生成证书步骤中生成的ca.crt复制到/etc/docker/certs.d/reg.yourdomain.com(或您的注册表主机IP),如果该目录不存在,请创建它;否则会报错:登录未知权限签名证书。如果您将nginx端口443映射到另一个端口,则应改为创建/etc/docker/certs.d/reg.yourdomain.com:port(或您的注册表主机IP:端口)目录。然后运行任何docker命令来验证设置,例如

  docker login reg.yourdomain.com
如果您已将nginx 443端口映射到另一个端口,则需要添加要登录的端口,如下所示:

docker login reg.yourdomain.com:port

docker tag  host1/project/soure_image_name:tag  host2/project/new_image_name:tag   #将镜像重命名

docker push host2/project/image:tag   #上传镜像到私有仓库

注:注册用户需要管理员授权如下:

使用Harbor搭建docker私有仓库管理系统

1、访客没有push权限,开放人员能push镜像,项目管理员拥有push以及删除镜像的权限

2、姓名为已注册用户,添加如果是未注册用户会报错

为Harbour设置HTTPS后,您可以通过以下步骤验证它:

打开浏览器并输入地址:https://reg.moko.xyz。它应该显示Harbor的用户界面。

注:注册用户往library公共项目push默认是

pull步骤:

docker  pull  host/image_name:[tag]  #如果不带tag,则下载该仓库下所有image_name镜像