• 搭建企业级docker仓库—Harbor


    一、简介

    docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

    二、安装

    2.1、环境

    linux centos8
    192.168.182.152
    

    2.2、下载地址:
    可以在GitHub上下载离线安装包:

    地址:https://github.com/goharbor/harbor/releases

    下载可能会很慢,可以从我的百度云下载:

    链接:https://pan.baidu.com/s/1mvLMFFPuR7fHv_AfUK2Rhw
    提取码:8888

    2.3、安装docker-compose(Harbor是通过docker compose来部署的)
    1)配置阿里的epel源

    # 这里我下载的是centos8的,根据不同环境下载不同的版本
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-8.repo
    

    2)安装并升级Python-pip

    $ yum install python3-pip
    $ pip3 install --upgrade pip
    

    3)安装docker-compose

    $ pip3 install docker-compose
    

    4)查看docker-compose版本

    $ docker-compose --version
    

    2.4、解压下载的安装包

    $ mkdir -p /opt/harbor
    $ mv harbor-offline-installer-v2.3.1.tgz /opt/harbor/
    $ cd /opt/harbor
    $ tar -xvf harbor-offline-installer-v2.3.1.tgz
    

    2.4、修改配置文件harbor.conf

    $ cd /opt/harbor/harbor
    # 拷贝一个配置文件
    $ cp harbor.yml.tmpl harbor.yml
    # 创建持久化数据目录
    $ mkdir -p /opt/harbor/data
    

    完整配置harbor.yml

    #由于配置太多,我就把空行和注释去掉了
    $ grep -v '^$\|#' harbor.yml
    

    只改了hostname、data_volume,把https注释掉,如果需要配置https可以保留,我这里只使用http,其它默认就行。

    hostname: 192.168.182.152 # 修改成自己的机器的ip
    http:
      port: 80
    #https:
    #  port: 443
    #  certificate: /your/certificate/path
    #  private_key: /your/private/key/path
    harbor_admin_password: Harbor12345 # admin密码
    database:
      password: root123
      max_idle_conns: 100
      max_open_conns: 900
    data_volume: /opt/harbor/data # 持久化数据目录
    trivy:
      ignore_unfixed: false
      skip_update: false
      insecure: false
    jobservice:
      max_job_workers: 10
    notification:
      webhook_job_max_retry: 10
    chart:
      absolute_url: disabled
    log:
      level: info
      local:
        rotate_count: 50
        rotate_size: 200M
        location: /var/log/harbor
    _version: 2.3.0
    proxy:
      http_proxy:
      https_proxy:
      no_proxy:
      components:
        - core
        - jobservice
        - trivy
    

    2.5、安装并启动Harbor

    $ ./install.sh
    

    安装完成后查看下正在运行的docker容器:

    $ docker ps
    

    2.6、访问harbor WEB界面

    http://192.168.182.152/
    账号/密码:admin/Harbor12345

    三、Harbor的使用(上传下载镜像)

    3.1、登录harbor

    $ docker login 192.168.182.152
    

    登录失败,拒绝访问

    【报错原因】Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是我们这里使用HTTP。

    【报错解决】
    在Docker配置文件/etc/docker/daemon.json中加入如下配置 :

    "insecure-registries":["192.168.182.152"]
    

    然后重新启动Docker:

    $ systemctl restart docker
    # 重启一下容器服务
    $ docker-compose restart
    

    再次登录

    $ docker login 192.168.182.152
    # 账号/密码:admin/Harbor12345
    

    3.2、创建项目,这里创建一个test项目用于测试用。

    如果不创建项目,则会报错‘unauthorized: project test not found: project test not found

    3.3、给构建好的镜像打标签并上传到harbor

    # 打标签,这里的test就是上面创建的项目
    $ docker tag busybox:latest 192.168.182.152/test/busybox:v1
    # 推送到远程仓库
    $ docker push 192.168.182.152/test/busybox:v1
    


    3.4、下载镜像

    $ docker image ls
    $ docker rmi 192.168.182.152/test/busybox:v1
    $ docker image ls
    # 拉取镜像
    $ docker pull 192.168.182.152/test/busybox:v1
    

    四、Harbor启停

    # 进到harbor安装目录
    $ cd /opt/harbor/harbor
    # 查看状态
    $ docker-compose ps
    # 停止
    $ docker-compose stop
    $ docker-compose ps
    # 启动
    $ docker-compose start
    $ docker-compose ps
    # 重启
    $ docker-compose restart
    $ docker-compose ps
    
  • 相关阅读:
    C# 异步锁
    C#异步编程基础入门总结
    C#异步编程基础入门总结
    C#与数据结构--图的遍历
    C#中IEumerable的简单了解
    C# prism 框架 MVVM框架 Prism系列之事件聚合器
    .NET Core 3 WPF MVVM框架 Prism系列之对话框服务
    C# prism 框架
    TaskAwaiter<TResult> 结构
    利用Eventlog Analyzer分析日志
  • 原文地址:https://www.cnblogs.com/liugp/p/16319396.html
Copyright © 2020-2023  润新知