zoukankan      html  css  js  c++  java
  • 5.docker仓库--harbor

    首先,先说说harbor是什么?

    harbor就是一个类似于hub.docker.com的仓库. 这是我们自己搭建的一个仓库, 如果公司使用, 不可能把镜像都上传到hub.docker.com上, 费钱不说, 也不安全. 

    所以, 我们需要自己学会搭建一个这样的平台.

    下面分几个部分介绍:

    1. harbor介绍

    2. harbor的核心组件

    3. harbor的安装要求

    4. harbor安装

    5. 创建https证书以及配置相关目录权限

    6. 修改harbor配置文件并启动

    7. harbor的基本用法


     

    一. harbor介绍

    1. Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
    2. Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

    二. Harbor核心组件

    • Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
    • db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
    • UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
    • jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
    • Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
    • Registry:镜像仓库,负责存储镜像文件。
    • Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

    三. 底层安装需求

    1. python 应该是2.7或更高版本

    python

      

    2. Docker引擎应为1.10或更高版本

    3. Docker Compose需要为1.6或更高版本

    四. Harbor安装: Harbor官方地址:

     https://github.com/goharbor/harbor/releases  下载offline的版本即可.

    国内github很慢, 使用加速器下载: https://toolwa.com/github/

    1. 将harbor上传到虚拟机上

     2. 解压后,将其放到/usr/local下

    五. 创建https证书以及配置相关目录权限

    第一步:生成私钥

    openssl genrsa -des3 -out server.key 2048

    输入密码:123456

     第二步: 创建证书请求

    openssl req -new -key server.key -out server.csr

    输入上一步的密码:123456

    第三步:备份

    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

    第六步:创建目录

    mkdir -p /data/cert   //名字不可变

    第七步: 将证书拷贝到/data/cert目录下

    mv server.* /data/cert/

    第八步: 设置文件夹权限

    chmod -R 777 /data/cert

    六. 修改harbor的配置文件并启动

    第一步: 需改配置文件

    进入到/usr/local/harbor目录

    修改harbor.yml配置文件, 修改内容如下

    设置访问的域名为hub.lxl.com
    hostname: hub.lxl.com
    # 设置https访问的证书 https: certificate:
    /data/cert/server.crt private_key: /data/cert/server.key
    # 设置root登录密码为123456 harbor_admin_password:
    123456

    第二步: 执行install.sh脚本

     

     看到这个提示,就是成功了

    这是执行

    docker ps -a

    后台已经执行了一些进程了

    第三步: 配置本机macos的hosts

    192.168.198.143 hub.lxl.com

    指定访问hub.lxl.com的时候,跳转到192.168.198.143服务器上

    第四步: 访问harbor请求地址

    https://hub.lxl.com/

    这个网址, 我通过google打不开, 报异常 

     

    使用mac自带的浏览器可以打开, 输入用户名/密码

    admin/123456

    七. harbor的基本用法

     1. 系统管理

    登录到harbor仓库以后, 我们可以看到当前有一个公共的项目, 其访问级别是public. 

     public的含义是, 各个用户登录后都可以看到这个仓库. 这个仓库可以用来存放一些基础镜像

    2. 用户管理

    添加一个新用户sa, 密码是!QAZ2wsx

     在admin账号下,新建一个私有仓库docker. 这个仓库只有admin账户可以访问

    使用sa登录, 将看不到docker仓库

    第三步: 切换账号sa登录, 

    sa/!QAZ2wsx

    新建一个仓库叫sa, 并且是私有的. 

     第四步: 我们在192.168.198.143服务器上上传一个镜像, 并push到sa私有仓库

    1. 给192.168.198.143添加受信任的域名

    {
      "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"],
      "insecure-registries":["hub.lxl.com"]
    }

    2. 配置本地hosts

    192.168.198.143 hub.lxl.com

    3. 重启docker

    systemctl daemon-reload
    systemctl restart docker

    这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库

    docker ps -a

    一定要查看一下镜像harbor的镜像是否都启动. 如果没有都启动, 那么进入/usr/local/harbor,执行./install.sh

    4. 登录docker仓库

    docker login hub.lxl.com

     

     5. 查看镜像镜像上传到harbor的方式

    6. 生成tag, 并push到harbor仓库

    docker tag tomcat9:latest hub.lxl.com/sa/tomcat9:1.0
    docker push hub.lxl.com/sa/tomcat9:1.0

    上传完成:

     查看harbor结果

     我们看到了上传的结果, 接下来pull拉取到192.168.198.142服务器上

    第五步. 从harbor仓库将镜像拉取到192.168.198.142服务器

    1. 给192.168.198.143添加受信任的域名

    {
      "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"],
      "insecure-registries":["hub.lxl.com"]
    }

    2. 配置本地hosts

    192.168.198.143 hub.lxl.com

    3. 重启docker

    systemctl daemon-reload
    systemctl restart docker

    这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库

    docker ps -a

    一定要查看一下镜像harbor的镜像是否都启动. 如果没有都启动, 那么进入/usr/local/harbor,执行./install.sh

    4. 登录docker仓库

    docker login hub.lxl.com

     

     5. 拉取镜像

    docker pull hub.lxl.com/sa/tomcat9

    成功拉取, 接下来启动镜像, 访问容器就ok了

  • 相关阅读:
    Spring集成XFire开发WebService
    【ASP.NET】验证控件
    中文分词——正向最大匹配法
    fastdfs storage server的设计与实现
    php浮点数精确运算
    完整导出IntelliJ IDEA的快捷键
    时空理论-结构-空间,运动-时间
    结构论-系统的结构逻辑
    结构主义理论-时空一体才是存在的本源
    分形几何学
  • 原文地址:https://www.cnblogs.com/ITPower/p/13064905.html
Copyright © 2011-2022 走看看