zoukankan      html  css  js  c++  java
  • 使用docker搭建“企业级镜像仓库”Harbor

    一、前沿

    docker的官方镜像仓库registry,功能比较单一,不太好用,特别是删除镜像操作,不够友好。

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,

    例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,

    Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。

    Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,

    确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

    安装环境:

    1 Linux UbuntuServer 4.4.0-103-generic #126-Ubuntu SMP Mon Dec 4 16:23:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    2 Docker version 17.09.1-ce, build 19e2cf6
    3 docker-compose version 1.17.1, build 6d101fb

    二、安装docker(略)

    三、安装docker-compose(略)

    四、安装Harbor

    下载Harbor

    wget http://harbor.orientsoft.cn/harbor-v1.3.0/harbor-offline-installer-v1.3.0.tgz

    解压

    tar -xzvf harbor-offline-installer-v1.3.0.tgz

    得到安装配置文件

    这里使用HTTP Insecure Registry。

    打开harbor.cfg,修改hostname = 本机ip:端口,默认是80端口,如果80被占用,则需要换端口,比如hostname = 10.0.3.16:7077,

    同时打开docker-compose.yml,修改ngxin的转发端口,比如:

    proxy:
        image: vmware/nginx-photon:1.11.13
        container_name: nginx
        restart: always
        volumes:
          - ./common/config/nginx:/etc/nginx:z
        networks:
          - harbor
        ports:
          - 7077:80
          - 4433:4433
          - 4443:4443
        depends_on:
          - mysql
          - registry
          - ui
          - log
        logging:
          driver: "syslog"
          options:
            syslog-address: "tcp://127.0.0.1:1514"
            tag: "proxy"

    然后保存,启动Harbor:

    ./install.sh

    查看各容器状态:

    docker-compose ps

    确保各容器状态都在“up”,即可访问管理界面http://10.0.3.16:7077

    各容器的日志记录在:/var/log/harbor/

    用户名admin,密码:Harbor12345,配置文件harbor.cfg里有。

    五、尝试上传和拉取镜像

    登陆Harbor之后,创建一个项目,并选择“公开”:

    可以看到此时项目里没有镜像:

    现在上传一个镜像,上传之前由于Harbor使用的HTTP Insecure Registry模式,所以需要设置docker允许使用Insecure Registry。

    vim /etc/docker/daemon.json

    写入insecure-registries

    {
     "registry-mirrors": ["https://registry.docker-cn.com"],
     "insecure-registries": [
           "10.0.3.16:7077"
      ]
    
    }

    重启docker:

    1 systemctl daemon-reload
    2 systemctl restart docker

    上传一个修改过的busybox:

    1 docker pull busybox
    2 docker tag busybox 10.0.3.16:7077/myregistry/busybox:v1.0
    3 docker login 10.0.3.16:7077 # 用户名:admin,密码:Harbor12345
    4 docker push 10.0.3.16:7077/myregistry/busybox:v1.0

    可以看到Harbor仓库里面已经有了:

    换一台机器,尝试拉取:

    docker pull 10.0.3.16:7077/myregistry/busybox:v1.0

    也是可以的。

    六、参考:

    https://blog.csdn.net/nklinsirui/article/details/87924176

    Harbor各版本:http://harbor.orientsoft.cn/

  • 相关阅读:
    ASP.NET MVC 音乐商店 1 创建项目
    ASP.NET MVC 音乐商店 2.控制器
    TCP/IP体系结构
    C#线程系列
    多条件分页查询细节
    持续集成引擎 Hudson 和IOC 引擎StructureMap
    GoF著作中未提到的设计模式
    Thoughtworks
    Thoughtworks2
    监控 SQL Server 的运行
  • 原文地址:https://www.cnblogs.com/dowi/p/10490181.html
Copyright © 2011-2022 走看看