参考资料

  1. ZooKeeper 是一个开源的分布式协调服务
  2. Composer 是 PHP 的依赖管理工具
  3. api-firewall 是一个开源的 API 防火墙
  4. FAST OS DOCKER 是一个轻量化的 Docker 管理工具
  5. Logstash 是 Elastic 公司开发的开源数据收集和处理引擎
  6. Nginx 是一款高性能的开源 Web 服务器
  7. InfluxDB是一个开源的时序数据库
  8. Aerospike 是一个高性能、分布式 NoSQL 数据库

Registry 详细简介

Registry 是 Docker 官方提供的开源镜像仓库,用于存储和分发 Docker 镜像。它支持私有化部署,允许用户在本地或内网环境中管理镜像。

特点

  1. 私有化部署:支持内网环境搭建私有镜像仓库。

  2. 安全性:支持 TLS 加密和基于角色的访问控制(RBAC)。

  3. 可扩展性:支持分布式存储后端(如 S3、Azure Blob Storage 等)。

  4. 轻量高效:基于 Go 语言开发,资源占用低。

  5. API 兼容:完全兼容 Docker Registry API V2。

最新更新内容及时间

  • 最新版本:v2.8.2

  • 更新时间:2023年10月

  • 更新内容

    • 修复了 CVE-2023-3086 安全漏洞。

    • 改进了垃圾回收机制的性能。

    • 支持 OCI 1.1 规范的镜像格式。

镜像下载地址

官方 Docker Hub 镜像地址:

docker pull registry:latest

官网地址

Docker Registry 官方 GitHub 仓库:
https://github.com/distribution/distribution

文档地址

官方文档:
https://docs.docker.com/registry/

Docker 安装示例

  1. 拉取最新 Registry 镜像:  

    docker pull registry:latest
  2. 运行 Registry 容器:  

    docker run -d -p 5000:5000 --name my-registry registry
  3. 测试推送镜像:  

    docker tag alpine localhost:5000/my-alpine
    docker push localhost:5000/my-alpine

YAML 配置文件示例

默认配置文件路径:/etc/docker/registry/config.yml
示例配置(支持 HTTP 基本认证和存储):

version: 0.1
log:
  level: info
storage:
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
auth:
  htpasswd:
    realm: basic-realm
    path: /auth/htpasswd

常用错误及解决方法

  1. 错误:http: server gave HTTP response to HTTPS client
    原因:Docker 客户端默认要求 HTTPS,但 Registry 未配置 TLS。
    解决:在客户端 Docker 配置中(/etc/docker/daemon.json)添加:

    { "insecure-registries":["your-registry-ip:5000"] }

    并重启 Docker:systemctl restart docker

  2. 错误:blob unknown to registry
    原因:镜像层在推送过程中丢失或垃圾回收后未正确清理。
    解决:重新推送镜像或检查存储后端是否正常。

  3. 错误:no basic auth credentials
    原因:未配置认证或认证信息错误。
    解决:使用 docker login your-registry-ip:5000 登录。