零成本搭建私有仓库:Distribution与My Cloud OS 5完美集成

零成本搭建私有仓库:Distribution与My Cloud OS 5完美集成

【免费下载链接】distribution Distribution 是一个开源的软件分发平台,用于存储、分发和安装软件包,支持多种软件格式和平台。 * 软件分发平台、存储、分发和安装软件包 * 有什么特点:支持多种软件格式和平台、易于集成和扩展、用于软件包管理和分发 【免费下载链接】distribution 项目地址: https://gitcode.com/gh_mirrors/dis/distribution

你是否正在为团队的Docker镜像管理而烦恼?公有仓库访问速度慢、私有云存储成本高、数据安全无法保障?本文将带你一步步实现Distribution与Western Digital My Cloud OS 5的无缝集成,只需一个家用网络存储设备,即可搭建属于你的高性能私有镜像仓库,彻底解决上述痛点。

读完本文后,你将能够:

  • 在My Cloud OS 5设备上部署Distribution私有仓库
  • 配置安全的访问控制与认证机制
  • 实现本地网络内的高速镜像分发
  • 确保数据持久化存储与备份

为什么选择Distribution与My Cloud OS 5集成

Distribution作为Docker官方的开源仓库实现,提供了稳定、安全、可扩展的镜像管理能力。而Western Digital My Cloud OS 5设备则是一款功能强大的家用网络存储解决方案,两者的结合可以为个人开发者或小型团队带来以下优势:

  • 成本效益:无需额外购买服务器硬件,利用现有网络存储设备
  • 数据主权:敏感镜像数据存储在本地,避免云端隐私泄露风险
  • 访问速度:局域网内千兆网络传输,大幅提升镜像拉取/推送效率
  • 简单易用:基于Web的管理界面,无需复杂的命令行操作

准备工作

在开始集成之前,请确保你已准备好以下环境和工具:

  • 运行My Cloud OS 5的Western Digital网络存储设备(如My Cloud EX2 Ultra、My Cloud PR4100等)
  • 设备已连接到家庭网络,并确保有稳定的电源供应
  • 电脑与设备在同一局域网内,用于配置和管理
  • 设备至少有10GB以上的可用存储空间

官方文档:部署指南

安装Docker环境

My Cloud OS 5系统默认未安装Docker,需要通过以下步骤手动安装:

  1. 登录My Cloud OS 5的管理界面,进入"应用"选项卡
  2. 在应用商店中搜索"Docker"并安装
  3. 安装完成后,启动Docker服务
  4. 验证Docker是否正常运行:
    $ docker --version
    Docker version 20.10.9, build c2ea9bc
    

配置存储路径

为确保镜像数据能持久化存储在My Cloud设备的硬盘上,需要配置自定义存储路径:

  1. 通过SSH登录My Cloud设备:

    $ ssh sshd@mycloud-device-ip
    
  2. 创建专用存储目录:

    $ mkdir -p /mnt/HD/HD_a2/registry/data
    $ mkdir -p /mnt/HD/HD_a2/registry/auth
    $ mkdir -p /mnt/HD/HD_a2/registry/certs
    
  3. 设置适当的权限:

    $ chmod -R 775 /mnt/HD/HD_a2/registry
    

配置Distribution服务

使用Docker Compose来配置和启动Distribution服务:

  1. 创建docker-compose.yml文件:

    version: '3'
    services:
      registry:
        restart: always
        image: registry:3
        ports:
          - 5000:5000
        environment:
          REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
          REGISTRY_HTTP_TLS_KEY: /certs/domain.key
          REGISTRY_AUTH: htpasswd
          REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
          REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
        volumes:
          - /mnt/HD/HD_a2/registry/data:/var/lib/registry
          - /mnt/HD/HD_a2/registry/certs:/certs
          - /mnt/HD/HD_a2/registry/auth:/auth
    
  2. 保存文件到/mnt/HD/HD_a2/registry目录

配置文件参考:示例配置

设置认证机制

为保护私有仓库不被未授权访问,需要配置认证机制:

  1. 创建htpasswd文件:

    $ docker run --rm --entrypoint htpasswd httpd:2 -Bbn admin securepassword > /mnt/HD/HD_a2/registry/auth/htpasswd
    
  2. 验证文件内容:

    $ cat /mnt/HD/HD_a2/registry/auth/htpasswd
    admin:$2y$05$h9t7U3uK41O2bZtJZJ5q1eXlXlXlXlXlXlXlXlXlXlXlXlXlXlX
    
  3. 配置HTTPS证书(自签名示例):

    $ openssl req -newkey rsa:4096 -nodes -sha256 -keyout /mnt/HD/HD_a2/registry/certs/domain.key -x509 -days 365 -out /mnt/HD/HD_a2/registry/certs/domain.crt
    

认证配置示意图

启动Distribution服务

完成上述配置后,启动Distribution服务:

  1. 进入配置文件所在目录:

    $ cd /mnt/HD/HD_a2/registry
    
  2. 使用Docker Compose启动服务:

    $ docker compose up -d
    
  3. 检查服务状态:

    $ docker compose ps
    
  4. 查看服务日志,确认启动正常:

    $ docker compose logs -f
    

测试私有仓库

现在可以测试私有仓库是否正常工作:

  1. 从另一台电脑登录仓库:

    $ docker login mycloud-device-ip:5000
    
  2. 输入之前创建的用户名和密码

  3. 测试镜像推送和拉取:

    $ docker pull hello-world
    $ docker tag hello-world mycloud-device-ip:5000/hello-world
    $ docker push mycloud-device-ip:5000/hello-world
    $ docker rmi mycloud-device-ip:5000/hello-world
    $ docker pull mycloud-device-ip:5000/hello-world
    

配置网络访问

为了让局域网内的其他设备也能访问私有仓库,需要进行端口转发设置:

  1. 登录My Cloud OS 5管理界面
  2. 进入"设置" > "网络" > "端口转发"
  3. 添加端口转发规则:
    • 外部端口:5000
    • 内部端口:5000
    • 协议:TCP
    • 设备IP:My Cloud设备的本地IP
  4. 保存设置

启用通知功能

配置Distribution在镜像被推送或拉取时发送通知:

  1. 创建通知配置文件:

    notifications:
      endpoints:
        - name: local-http
          url: http://localhost:5001/hooks
          timeout: 500ms
          threshold: 5
          backoff: 1s
    
  2. 在docker-compose.yml中添加配置挂载:

    volumes:
      - ./notifications.yml:/etc/docker/registry/notifications.yml
    environment:
      - REGISTRY_NOTIFICATIONS_ENDPOINTS_0_NAME=local-http
      - REGISTRY_NOTIFICATIONS_ENDPOINTS_0_URL=http://localhost:5001/hooks
    

通知系统架构

常见问题与解决方法

无法访问仓库

如果遇到"无法连接到仓库"错误,请检查:

  • Docker服务是否正常运行
  • 防火墙设置是否允许5000端口访问
  • 网络连接是否正常
  • 尝试重启Distribution服务:docker compose restart

存储容量不足

当仓库存储满时,可以:

  1. 删除不再需要的镜像
  2. 配置自动清理策略:
    $ docker exec registry registry garbage-collect /etc/docker/registry/config.yml
    

忘记密码

如果忘记认证密码,可以重新生成htpasswd文件:

$ docker run --rm --entrypoint htpasswd httpd:2 -Bbn 新用户名 新密码 > /mnt/HD/HD_a2/registry/auth/htpasswd

总结与展望

通过本文的步骤,你已经成功在Western Digital My Cloud OS 5设备上部署了Distribution私有仓库。这一解决方案不仅提供了安全、高效的本地镜像管理能力,还显著降低了对公有仓库的依赖。

未来可以考虑的改进方向:

  • 配置HTTPS加密提高安全性
  • 设置镜像自动备份策略
  • 实现与CI/CD系统的集成
  • 监控仓库使用情况和性能

希望本文对你搭建私有Docker仓库有所帮助!如果觉得有用,请点赞收藏,并关注获取更多技术教程。

下一教程预告:《Distribution高级配置:实现镜像自动同步》

【免费下载链接】distribution Distribution 是一个开源的软件分发平台,用于存储、分发和安装软件包,支持多种软件格式和平台。 * 软件分发平台、存储、分发和安装软件包 * 有什么特点:支持多种软件格式和平台、易于集成和扩展、用于软件包管理和分发 【免费下载链接】distribution 项目地址: https://gitcode.com/gh_mirrors/dis/distribution

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值