参考资料

  1. XXL-JOB 是一个分布式任务调度平台
  2. Kapacitor是InfluxData开发的开源数据处理引擎
  3. Docker的安装与配置
  4. SimpleDocker 是一个轻量级 Docker 管理工具
  5. Open Liberty是由IBM开发的开源轻量级Java应用服务器
  6. docker安装rabbitmq详细说明以及案例
  7. Cirros是一个轻量级的Linux发行版
  8. Nextcloud 是一款开源的自托管文件同步与共享平台

Registry 是 Docker 官方提供的开源镜像仓库,用于存储和分发 Docker 镜像

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 登录。