zoukankan      html  css  js  c++  java
  • 使用harbor搭建docker私有镜像仓库

    harbor为构建docker私有镜像仓库的开源方案,提供了Web UI管理界面,可进行用户权限管理、用户操作审计等功能。

    harbor部署成功后的管理界面如下所示:

    可以看到harbor提供的功能相当齐全。下面就把harbor部署过程做一记录。

    本次部署是基于以下环境构建:

    使用机器为Vmware Workstations创建虚拟机 

    系统版本:centOS7.7

    docker版本:19.03.10

    下面进入hardor部署:

    一、安装docker-compose:

    服务器有网络安装方式:

    docker-compose是docker用来管理容器的一个工具,harbor的运行基于docker-compose。

    安装docker-compose:

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

    如果github安装太慢,可使用下面的高速地址安装:

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

    服务器无网络时安装方式:

    先下载好(下载地址:https://github.com/docker/compose/releases/)后,上传至服务器centos的/usr/local/bin目录下

    不管使用哪种方式下载,上传到指定目录后都需要对文件进行赋权:chmod +x /usr/local/bin/docker-compose

    二、安装harbor

    1.下载并解压

     下载安装包:官网地址:https://github.com/vmware/harbor/releases/

     下载速度慢可用这个地址:http://harbor.orientsoft.cn/

     上传后解压:

    tar -xzvf harbor-offline-installer-v2.0.0.tgz

    2.使用OpenSSL配置harbor所需认证。

        harbor推送拉去镜像默认是使用https。所以需要配置https认证。https认证一般有两种方式,一种是自签,另一种是向官方申请https证书。

        OpenSSL提供的CA(证书管理中心)可实现证书签发的整个流程。下面将记录设置https自签步骤。

    (1)生成密钥和自签证书。

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

    其中x509代表生成自签名证书,newkey表示自动生成秘钥。执行命令后如下:

    其中的其他信息随意,Common Name信息填写的就是harbor管理页面的域名。

    (2)证书签名请求

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.dockerregistry.com.key -out harbor.dockerregistry.com.csr

    (3)生成服务器证书

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

    执行完后在本目录分别生成以ca和harbor.dockerregistry.com为名的.crt   .key 和.srl文件。

    将服务器证书即harbor.dockerregistry.com.crt和harbor.dockerregistry.com.key拷贝保存在/etc/harborcert目录下:

    cp harbor.dockerregistry.com.crt harbor.dockerregistry.com.key /etc/harborcert/

    3.修改harbor配置文件

     从模板harbor.yml.tmpl拷贝一份文件命名harbor.yml,修改配置harbor.yml文件如下:

    4.运行install.sh文件安装harbor

    5.安装完成后,hosts文件中追加一下行,将ip和域名对应:

      192.168.230.132    harbor.dockerregistry.com

    6.浏览器输入harbor域名,进入登录页面https://harbor.dockerregistry.com/

       默认用户名:admin   密码:Harbor12345

    harbor基本部署完成。下面我们使用docker登录harbor,并推送镜像至harbor中。

    7.客户端证书保存。在/etc/docker/certs.d/新建以harbor域名为命的文件夹。如下:

    mkdir -p /etc/docker/certs.d/harbor.dockerregistry.com

      拷贝客户端证书至该目录下:

    cp ca.crt /etc/docker/certs.d/harbor.dockerregistry.com

    在/etc/docker目录下编辑daemon.json文件,没有的话新建该文件: 

    vi /etc/docker/daemon.json

    内容如下:

    {
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
    "max-size": "100m"
    },"insecure-registries":[
        "harbor.dockerregistry.com"
      ]
    }

    其中"insecure-registries"字段对应的值就是harbor的域名。

    8.使用docker登录harbor。docker login harbor.dockerregistry.com。输入用户名和密码。如下图

     9.推送镜像到harbor上

    harbor搭建完成后会有一个默认的项目library。我们将镜像推送至该项目即可。

    首先使用tag标记镜像,如下:

    docker tag registry:latest harbor.dockerregistry.com/library/registry:latest

    推送镜像到harbor:

    docker push harbor.dockerregistry.com/library/registry:latest

    上传成功。具体如下图所示:

    10.检查推送镜像

    在harbor网页管理页面中查看项目library的镜像仓库可以看到刚刚推送的镜像。如下图:

    harbor第一次启动是安装完成后自启动的,后面若因为一些原因导致服务停止,可使用docker-compose启动harbor,命令如下:

    docker-compose up -d

    至此harbor私有镜像仓库搭建完成。

    当你试图去用自己的言语去讲清一些事物时,你会明白对此事物的理解是融会贯通还是一知半解
  • 相关阅读:
    老树新芽,在ES6下使用Express
    Swift3翻天覆地的改变
    NodeJs回调操作Promise化
    Node的关系型数据库ORM库:bookshelf
    基于Node的PetShop,RESTful API以及认证
    基于Node的PetShop,oauth2认证RESTful API
    Mongoose轻松搞定MongoDB,不要回调!
    Thymeleaf常用语法:表达式语法之运算符
    Thymeleaf对象的使用:日期对象
    Thymeleaf对象的使用:字符串对象
  • 原文地址:https://www.cnblogs.com/1211-1010/p/13021687.html
Copyright © 2011-2022 走看看