【云原生 | 45】Docker搭建Registry私有仓库之配置Registry详解

news2024/11/24 20:24:00

🍁博主简介
        🏅云计算领域优质创作者
        🏅2022年CSDN新星计划python赛道第一名

        🏅2022年CSDN原力计划优质作者
        🏅阿里云ACE认证高级工程师
        🏅阿里云开发者社区专家博主

💊交流社区:CSDN云计算交流社区欢迎您的加入!

目录

1. 示例配置 

2. 选项 

1.版本信息 

2.log选项

3.hooks选项 

4.存储选项 

5.认证选项 

6.HTTP选项 

7.通知选项 

8.redis选项 

9.健康监控选项

10.代理选项

11.验证选项 

 👑👑👑结束语👑👑👑


Docker Registry提供了一些样例配置,用户可以直接使用它们来进行开发或生产部署。
博主将以下面的示例配置来介绍如何使用配置文件来管理私有仓库。

1. 示例配置 

代码如下:

version: 0.1
log:
    level: debug
    fields:
        service: registry
        environment: development
    hooks:
        - type: mail
            disabled: true
            levels:
                - panic
            options:
                smtp:
                    addr: mail.example.com:25
                    username: mailuser
                    password: password
                    insecure: true
                from: sender@example.com
                to:
                    - errors@example.com
storage:
        delete:
            enabled: true
        cache:
                blobdescriptor: redis
        filesystem:
                rootdirectory: /var/lib/registry
        maintenance:
                uploadpurging:
                    enabled: false
http:
        addr: :5000
        debug:
                addr: localhost:5001
        headers:
                X-Content-Type-Options: [nosniff]
redis:
        addr: localhost:6379
        pool:
            maxidle: 16
            maxactive: 64
            idletimeout: 300s
        dialtimeout: 10ms
        readtimeout: 10ms
        writetimeout: 10ms
notifications:
    endpoints:
        - name: local-5003
            url: http://localhost:5003/callback
            headers:
                Authorization: [Bearer <an example token>]
                timeout: 1s
                threshold: 10
                backoff: 1s
                disabled: true
            - name: local-8083
                url: http://localhost:8083/callback
                timeout: 1s
                threshold: 10
                backoff: 1s
                disabled: true
health:
    storagedriver:
        enabled: true
        interval: 10s
        threshold: 3

 

2. 选项 

这些选项以yaml文件格式提供,用户可以直接进行修改,也可以添加自定义的模板段。
默认情况下,变量可以从环境变量中读取,例如log.level:debug可以配置为:
export LOG_LEVEL=debug
比较重要的选项包括版本信息、log选项、hooks选项、存储选项、认证选项、HTTP选项、通知选项、redis选项、健康监控选项、代理选项和验证选项等。下面分别介绍这些选项。

1.版本信息 

version:0.1

2.log选项

日志相关:

log:
    level: debug
    formatter: text
    fields:
        service: registry
        environment: staging

参数说明:

·level:字符串类型,标注输出调试信息的级别,包括debug、info、warn、error。
·fomatter:字符串类型,日志输出的格式,包括text、json、logstash等。
·fields:增加到日志输出消息中的键值对,可以用于过滤日志。

3.hooks选项 

配置当仓库发生异常时,通过邮件发送日志时的参数:

hooks:
    - type: mail
        levels:
            - panic
        options:
            smtp:
                addr: smtp.sendhost.com:25
                username: sendername
                password: password
                insecure: true
            from: name@sendhost.com
            to:
                - name@receivehost.com

4.存储选项 

storage选项将配置存储的引擎,默认支持包括本地文件系统、 Google云存储、AWS S3云存储和OpenStack Swift分布式存储等,如下所示:
storage:
    filesystem:
        rootdirectory: /var/lib/registry
    azure:
        accountname: accountname
        accountkey: base64encodedaccountkey
        container: containername
    gcs:
        bucket: bucketname
        keyfile: /path/to/keyfile
        rootdirectory: /gcs/object/name/prefix
    s3:
        accesskey: awsaccesskey
        secretkey: awssecretkey
        region: us-west-1
        regionendpoint: http://myobjects.local
        bucket: bucketname
        encrypt: true
        keyid: mykeyid
        secure: true
        v4auth: true
        chunksize: 5242880
        multipartcopychunksize: 33554432
        multipartcopymaxconcurrency: 100
        multipartcopythresholdsize: 33554432
        rootdirectory: /s3/object/name/prefix
swift:
        username: username
        password: password
        authurl: https://storage.myprovider.com/auth/v1.0 or https://storage.
        myprovider.com/v2.0 or https://storage.myprovider.com/v3/auth
        tenant: tenantname
        tenantid: tenantid
        domain: domain name for Openstack Identity v3 API
        domainid: domain id for Openstack Identity v3 API
        insecureskipverify: true
        region: fr
        container: containername
        rootdirectory: /swift/object/name/prefix
oss:
        accesskeyid: accesskeyid
        accesskeysecret: accesskeysecret
        region: OSS region name
        endpoint: optional endpoints
        internal: optional internal endpoint
        bucket: OSS bucket
        encrypt: optional data encryption setting
        secure: optional ssl setting
        chunksize: optional size valye
        rootdirectory: optional root directory
inmemory:
delete:
    enabled: false
cache:
    blobdescriptor: inmemory
maintenance:
    uploadpurging:
        enabled: true
        age: 168h
        interval: 24h
        dryrun: false
redirect:
    disable: false

比较重要的选项如下:

·maintenance:配置维护相关的功能,包括对孤立旧文件的清理、开启只读模式等;
·delete:是否允许删除镜像功能,默认关闭;
·cache:开启对镜像层元数据的缓存功能,默认开启;

5.认证选项 

对认证类型的配置,如下所示:

auth:
    silly:
        realm: silly-realm
        service: silly-service
    token:
        realm: token-realm
        service: token-service
        issuer: registry-token-issuer
        rootcertbundle: /root/certs/bundle
    htpasswd:
        realm: basic-realm
path: /path/to/htpasswd

比较重要的选项如下:

·silly:仅供测试使用,只要请求头带有认证域即可,不做内容检查

·token:基于token的用户认证,适用于生产环境,需要额外的token服务来支持;
·htpasswd:基于Apache htpasswd密码文件的权限检查。

6.HTTP选项 

跟HTTP服务相关的配置,如下所示:

http:
    addr: localhost:5000
    net: tcp
    prefix: /my/nested/registry/
    host: https://myregistryaddress.org:5000
    secret: asecretforlocaldevelopment
    relativeurls: false
    tls:
        certificate: /path/to/x509/public
        key: /path/to/x509/private
        clientcas:
            - /path/to/ca.pem
            - /path/to/another/ca.pem
        letsencrypt:
            cachefile: /path/to/cache-file
            email: emailused@letsencrypt.com
debug:
    addr: localhost:5001
headers:
    X-Content-Type-Options: [nosniff]
http2:
    disabled: false

其中的参数如下:

·addr:必选,服务监听地址;
·secret:必选,跟安全相关的随机字符串,用户可以自己定义;
·tls:证书相关的文件路径信息;
·http2:是否开启http2支持,默认关闭。

7.通知选项 

有事件发生时候的通知系统。

notifications:
    endpoints:
        - name: alistener
            disabled: false
                url: https://my.listener.com/event
                headers: <http.Header>
                timeout: 500
                threshold: 5
                backoff: 1000

8.redis选项 

Registry可以用Redis来缓存文件块,这里可以配置相关选项:

redis:
    addr: localhost:6379
    password: asecret
    db: 0
    dialtimeout: 10ms
    readtimeout: 10ms
    writetimeout: 10ms
    pool:
        maxidle: 16
        maxactive: 64
        idletimeout: 300s

9.健康监控选项 

跟健康监控相关,主要是对配置服务进行检测判断系统状态,如下所示

health:
    storagedriver:
        enabled: true
        interval: 10s
        threshold: 3
    file:
        - file: /path/to/checked/file
            interval: 10s
    http:
        - uri: http://server.to.check/must/return/200
            headers:
                Authorization: [Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==]
            statuscode: 200
            timeout: 3s
            interval: 10s
            threshold: 3
tcp:
    - addr: redis-server.domain.com:6379
        timeout: 3s
        interval: 10s
        threshold: 3

默认并未启用。

10.代理选项

配置Registry作为一个pull代理,从远端(目前仅支持官方仓库)下拉Docker镜像,如下所示:
proxy:
    remoteurl: https://registry-1.docker.io
    username: [username]
    password: [password]

之后,用户可以通过如下命令来配置Docker使用代理:

$ docker --registry-mirror=https://myrepo.com:5000 daemon

11.验证选项 

限定来自指定地址的客户端才可以执行push操作:

validation:
    enabled: true
    manifests:
        urls:
        allow:
            - ^https?://([^/]+\.)*example\.com/
        deny:
            - ^https?://www\.example\.com/

 👑👑👑结束语👑👑👑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

连接SQL Server 数据库

目录 一、启动 SQL Server Management Studio 1. 点击 SQL Server Management Studio 菜单进入 2. 选择服务器和身份验证方式 3. 点击连接进入数据库 二、新建数据库 1.数据库的概念 2. 看看当前有哪些数据库 3. 新建数据库 三、新建查询 1. 选中 test 数据库…

编码踩坑——记一次fastjson引发的空指针问题、引用标识$ref

本篇介绍在使用fastjson过程中遇到的一个问题&#xff0c;从而引申出使用fastjson时的注意事项——&#xff08;1&#xff09;尽量避免在实体中定义 get 开头的方法&#xff1b;&#xff08;2&#xff09;避免较深的实体字段层级&#xff1b;&#xff08;3&#xff09;避免实体…

企业信息化改革怎么做?

前几天遇到一位朋友提问&#xff0c;他说他们公司目前需要进行信息化改革&#xff0c;问我有哪些好用的信息化管理系统推荐&#xff1f;并附上了几点要求&#xff1a; 扩展性强&#xff08;公司管理结构变化很快&#xff0c;套装软件扩展升级太麻烦&#xff0c;并不适合&#…

怎样建立自己网站?【建立网站】

怎样建立自己网站&#xff1f;以前建立网站大部分情况下都是需要懂编程&#xff0c;又或者是懂一点代码然后去找源码模板做二次开发。不过随着技术的发展&#xff0c;建立自己网站的方式也在变多&#xff0c;例如目前比较流行的自助搭建网站。那么怎样建立自己网站呢&#xff1…

全卷积神经网络图像去噪研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、网络结构✳️ 三、实验结果✳️ 3.1 数据集与网络训练✳️ 3.2 卷积神经网络去噪实验✳️ 3.3 基于BM3D的对比实验✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 图像去噪在底层视觉中的重要性可以从多方面体现出来。首先&…

批量导入Npm包依赖到Nexus私服(批量上传脚本)

背景 批量导入是在以下几点情况下产生的需求&#xff1a; 已有Nexus系统&#xff0c;在测试构建环境中Nexus系统为离线环境不能配置外网代理自动下载项目代码工程所在工作电脑有条件联网现需要将项目代码在测试构建环境中连接Nexus私服进行编译构建 基于上面几点情况&#x…

HTML+CSS美食静态网站设计【海鲜网站】web结课作业的源码 web网页设计实例作业

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Spring Security(3)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 前面运行写好的代码之所以没有任何显示&#xff0c;是因为还没有对Spring Security进行配置&#xff0c;当然啥也不显示了。这就好比你坐在车上&#xff0c;却不…

智慧灾备解决方案-最新全套文件

智慧灾备解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 智慧灾备全套最新解决方案合集一、建设背景 随着“云物移大智”各种技术的飞速发展&#xff0c;信息系统种类越来越多&#xff0c;数据保护也备受关注&#xff0c;传统数据保护往往仅覆盖数据库…

(CVPR 2019) 3D-SIS: 3D Semantic Instance Segmentation of RGB-D Scans

图 1&#xff1a;3D-SIS对RGB-D扫描数据执行3D实例分割&#xff0c;学习将2D RGB输入特征与3D扫描几何特征联合融合。结合能够在测试时对全3D扫描进行推理的全卷积方法&#xff0c;我们实现了对目标边界框、类标签和实例掩码的准确推理。 Abstract 我们介绍了3D-SIS&#xff0…

编译原理实验--实验三 预测分析法判断算术表达式的正确性--Python实现

目录 一、实验目的和要求 二、实验内容 三、实验环境 四、实验步骤 1、语法分析所依据的文法&#xff1b; 2、给出消除左递归及提取左公因子的LL(1)文法&#xff1b; 3、预测分析表 4、关键代码 五、实验结果与分析 一、实验目的和要求 理解自顶向下语法分析方法&#…

线程是什么?线程的相关概念以及基本的使用方法说明【内附可执行源码注释完整】

文章目录❓线程是什么&#x1f680;为什么要在程序中使用线程&#x1f34e;线程的优点、缺点&#x1f382;线程的应用场合&#x1f330;线程的基本使用⭐创建线程⭐线程的终止⭐等待指定线程结束⭐线程程序的编译命令&#x1f3e0;线程使用案例❓线程是什么 首先我们要知道进程…

3.1 首页功能的开发-跳转到首页

第三章. 业务功能开发 项目结构如下&#xff1a; 3.1 首页功能的开发 用户访问项目首页&#xff0c;首先进入登录页面。 用户登录流程图&#xff1a; 我们先写跳转到登录界面&#xff0c;在请求准发到index中如下图所示&#xff1a; 由于配置了视图解析器&#xff0c;查看ind…

GaussDB修改表空间占用磁盘使用率阈值

GaussDB数据库表空间占用磁盘使用率达到了你所设定的值后数据库会进入只读模式 执行非只读SQL时报错如下&#xff1a; ERROR: cannot execute %s in a read-only transaction. 或者运行中部分非只读SQL&#xff08;insert、update、create table as、create index、alter tab…

MCE | 促炎症的 PCD——细胞焦亡

程序性细胞死亡 (Programmed cell death, PCD) 是多细胞生物中&#xff0c;由基因调控的细胞自杀过程&#xff0c;对多细胞生物的发育、体内稳态和完整性至关重要。PCD 的研究涉及多个领域&#xff0c;如免疫、神经系统发育、癌症、感染等。常见的 PCD 有细胞凋亡 (Apoptosis)、…

贪吃蛇-第12届蓝桥杯Scratch选拔赛真题精选

[导读]&#xff1a;超平老师计划推出Scratch蓝桥杯真题解析100讲&#xff0c;这是超平老师解读Scratch蓝桥真题系列的第83讲。 蓝桥杯选拔赛每一届都要举行4~5次&#xff0c;和省赛、国赛相比&#xff0c;题目要简单不少&#xff0c;再加上篇幅有限&#xff0c;因此我精挑细选…

通信基石Socket结合OOP实现程序间的通信

学习目录前言一.Socket是用来干什么的二.如何用代码建立通信连接三.Java实现TCP发收消息四.UDP的Socket编程前言 先分享一下最近看到的几篇面经&#xff1a; 看了一下关于Socket的知识点好像面试十分高频&#xff0c;它作为通信的基石许多组件&#xff0c;框架都是在他的基础…

oracle数据库id字段自增长

mysql数据库中建表的时候可以设置id字段自增长&#xff0c;oracle数据库中要实现id字段自增长需要借助于sequence&#xff08;序列&#xff09;和trigger&#xff08;触发器&#xff09;。 下面通过一个简单的示范说明。 --1.新建一个账户表 account create table accout( …

机械转码日记【25】多态

目录 前言 1.多态的概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.4虚函数重写的两个例外 2.4 C11 override 和 final 2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3.抽象类 3.1概念 3.2 接口继承和实现继承 4.多态的原理 4.1虚函…

个人微信api

我们是一家专业服务企业数字化微信管理服务的技术服务团队&#xff0c;服务于需求SCRM、机器人、营销系统、社群小助手等具有研发能力的企业,同时我们也接收因使用Xp方案、ipad方案、PC方案导致被批量封号的企业&#xff0c;我们合作伙伴目前包含&#xff1a;金融服务行业Top10…