参考资料

  1. NATS Streaming(现更名为STAN)是基于NATS的消息流系统
  2. 如何使用Docker进行持续集成?
  3. Docker Swarm 是 Docker 原生的集群管理工具
  4. Gazebo是一款开源机器人模拟器
  5. Stirling-PDF 是一个开源的 PDF 工具集
  6. DweebUI是一个基于Stable Diffusion WebUI的轻量级分支
  7. Haskell是一种纯函数式编程语言
  8. Teleport 是一款开源的访问基础设施工具

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

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。