博客
关于我
Docker(七)Harbor私有仓库搭建
阅读量:375 次
发布时间:2019-03-05

本文共 2514 字,大约阅读时间需要 8 分钟。

Harbor私有镜像仓库搭建指南

1. 引言

在 Docker 容器化应用的开发和运行过程中,镜像管理是至关重要的一环。尽管 Docker 官方提供了公共镜像仓库,但从安全性和效率等方面考虑,搭建私有镜像仓库是非常必要的。Harbor 是 VMware 公司开源的企业级 Docker Registry 管理项目,具备权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制以及中文支持等多项功能。

此外,docker-compose 是一个强大的编排工具,能够轻松管理多个服务的启动顺序和优先级。


2. 发布环境架构

Harbor 私有镜像仓库的架构主要由以下几个关键组件构成:

  • Proxy(Nginx):作为反向代理,负责流量转发和安全验证。
  • Registry:基于 Docker 官方镜像构建的容器实例,用于存储镜像。
  • UI:Harbor 项目的核心服务组件,负责前端页面和后端接口。
  • MySQL:用于存储系统数据,基于官方 MySQL 镜像构建。
  • Log:运行 rsyslogd 容器,负责日志收集和管理。

这些服务需要根据优先级进行排列和配置。


3. Docker Compose 安装

安装 Docker Compose 可以通过以下命令实现:

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

4. 版本查看

可以通过以下命令查看 Docker Compose 的版本:

docker-compose --version

5. 安装 Harbor 镜像

Harbor 提供了离线安装包,下载并解压后可以通过以下命令加载镜像:

docker load -i harbor.v1.8.0.tar.gz

6. 安装步骤说明

6.1 生成 SSL 证书

  • 创建 CA 密钥对:
  • openssl req -x509 -new -nodes -sha512 -days 3650 \  -subj "/C=CN/ST=wzj/L=wzj/O=example/OU=Personal/CN=wzj.com" \  -key ca.key -out ca.crt
    1. 生成服务器端密钥对:
    2. openssl genrsa -out reg.wzj.com.key 4096
      1. 生成服务器端证书:
      2. openssl req -sha512 -new \  -subj "/C=CN/ST=wzj/L=wzj/O=example/OU=Personal/CN=reg.wzj.com" \  -key reg.wzj.com.key -out reg.wzj.com.csr
        1. 创建扩展文件:
        2. vim v3.ext
          1. 使用扩展文件生成服务器端证书:
          2. openssl x509 -req -sha512 -days 3650 \  -extfile v3.ext \  -CA ca.crt -CAkey ca.key -CAcreateserial \  -in reg.wzj.com.csr -out reg.wzj.com.crt

            6.2 安装证书

            将证书和私钥复制到 /root/cert 目录,并配置 harbor.yml 文件:

            mkdir /root/certcp reg.wzj.com.crt reg.wzj.com.key /root/cert/

            6.3 配置 harbor.yml

            编辑 harbor.yml 文件,确保配置正确无误:

            version: '3'services:  - name: proxy    image: nginx:latest    ports:      - "443:443"    volumes:      - ./harbor.yml:/etc/harbor/harbor.yml    restart: always  # 其他服务配置...

            6.4 加载镜像并启动服务

          3. 加载镜像:
          4. docker load -i harbor.v1.8.0.tar.gz
            1. 执行准备脚本:
            2. ./prepare
              1. 执行安装脚本:
              2. ./install.sh

                7. 后台启动

                为了实现服务的自动启动,可以通过以下命令执行:

                docker-compose downdocker-compose up -d

                8. 常见问题

                8.1 yml 文件格式错误

                如果在解析 yml 文件时出现以下错误:

                org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

                可能是由于 yml 文件格式不正确导致的,确保文件中没有多个空格或其他格式问题。

                8.2 Docker 登录问题

                在命令行中登录私有仓库时可能会遇到以下问题:

                docker login reg.wzj.com

                请确保持有相应的 CA 证书,并且配置正确。


                9. 注意事项

                • 配置文件中的域名必须正确解析,确保通过 HTTPS 访问。

                • harbor.yml 文件的修改需要重新启动服务,可以通过以下命令实现:

                  docker-compose downdocker-compose up -d

                10. Harbor 组件说明

                Harbor 的主要组件包括:

                • Nginx:负责反向代理和 HTTPS 加密。
                • harbor-ui:提供镜像仓库的管理界面。
                • harbor-adminserver:用于系统配置和管理接口。
                • harbor-db:存储系统数据和权限信息。
                • harbor-log:统一管理和收集日志。

                这些组件通过 Docker link 的形式连接在一起,实现高效的服务访问和管理。


                通过以上步骤,可以成功搭建一个高效、安全的私有 Docker 镜像仓库。

    转载地址:http://epzwz.baihongyu.com/

    你可能感兴趣的文章
    None还可以是函数定义可选参数的一个默认值,设置成默认值时实参在调用该函数时可以不输入与None绑定的元素...
    查看>>
    NOPI读取Excel
    查看>>
    NoSQL&MongoDB
    查看>>
    NoSQL介绍
    查看>>
    Notadd —— 基于 nest.js 的微服务开发框架
    查看>>
    Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Notepad++在线和离线安装JSON格式化插件
    查看>>
    notepad++最详情汇总
    查看>>
    notepad如何自动对齐_notepad++怎么自动排版
    查看>>
    Notification 使用详解(很全
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    Now trying to drop the old temporary tablespace, the session hangs.
    查看>>
    nowcoder—Beauty of Trees
    查看>>
    np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
    查看>>
    np.power的使用
    查看>>
    NPM 2FA双重认证的设置方法
    查看>>
    npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
    查看>>
    npm build报错Cannot find module ‘webpack‘解决方法
    查看>>
    npm ERR! ERESOLVE could not resolve报错
    查看>>
    npm ERR! fatal: unable to connect to github.com:
    查看>>