参考文章:[Docker 技术入门与实战 第3板]
配置 Registry
Docker Registry 提供了一些样例配置,用户可以直接使用它们进行开发或生产部署。
示例配置
这里以下面的示例配置(config-dev.yaml)为例,介绍如何使用配置文件来管理私有仓库。
1 | version: 0.1 |
配置选项
这些选项以 yaml 文件格式提供,用户可以直接进行修改,也可以添加自定义的模板段。
默认情况下变量可以从环境变量中读取,例如 log.level:debug 可以配置为:
1 | export LOG_LEVEL=debug |
比较重要的选项包括版本信息,log 选项,hooks 选项,存储选项,认证选项,HTTP 选项,通知选项,Redis 选项,健康监控选项,代理选项和验证选项等。下面分别介绍。
version 版本信息
1 | version: 0.1 |
log 日志选项
日志相关,代码如下:
1 | log: |
代码解释:
- level: 字符串类型,标注输出调试信息的级别,包括 debug,info,warn,error;
- formatter: 字符串类型,日志输出的格式,包括 text,json,logstash 等;
- fields: 增加到日志输出消息中的键值对,可以用于过滤日志。
hooks 选项
配置当仓库发生异变时,通过邮件发送日志时的参数,代码如下:
1 | hooks: |
storage 存储选项
storage 选项将配置存储引擎,默认支持包括本地文件系统,Google 云存储,AWS S3云存储和 OpenStack Swift 分布式存储等,代码如下:
1 | storage: |
比较重要的选项如下:
- maintenance: 配置维护相关的功能,包括对孤立旧文件的清理,开启只读模式等;
- delete: 是否允许删除镜像功能,默认关闭;
- cache: 开启对镜像层元数据的缓存功能,默认开启。
auth 认证选项
对认证类型的配置,代码如下:
1 | auth: |
代码解释:
- silly: 仅供测试使用,只要请求头带有认证域即可,不做内容检查;
- token: 基于 Token 的用户认证,适用于生产环境,需要额外的 Token 服务来支持;
- htpasswd: 基于 Apache htpasswd 密码文件的权限检查。
http 选项
与 HTTP 服务相关的配置,代码如下:
1 | http: |
代码解释:
- addr: 必选,服务监听地址;
- secret: 必选,与安全相关的随机字符串,用户可以自定义;
- tls: 证书相关的文件路径信息;
- http2: 是否开启 http2 支持,默认关闭。
notifications 通知选项
有事件发生时候的通知系统,代码如下:
1 | notifications: |
redis 选项
Registry 可以使用 Redis 来缓存文件块,这里可以配置相关选项,代码如下:
1 | redis: |
health 健康监控选项
与健康监控相关,主要是对配置服务进行检测判断系统状态,代码如下:
1 | health: |
默认并未启用
proxy 代理选项
配置 Registry 作为一个 pull 代理,从远端(目前仅支持官方仓库)下拉 Docker 镜像,代码如下:
1 | proxy: |
之后,用户可以通过如下命令来配置 Docker 使用代理:
1 | docker --registry-mirror=https://myrepo.com:5000 daemon |
validation 验证选项
限定来自指定地址的客户端才可以执行 push 操作,代码如下:
1 | validation: |