我以“独立黑客”的身份经营一家开放核心软件公司。有些用户免费下载开源版本,有些用户则付费购买高级版本,但需要经过身份验证才能使用该软件。
使用 Docker Hub 可以轻松分发开源版本的 Docker 镜像。
现在我也想分发非免费版本。
有没有办法生成每个客户的访问令牌以便“付费墙”提取,并可能告诉谁在何时提取了什么图像?
谢谢 :)
答案1
你也许可以使用 私有存储库 作为解决方案的软件付费版本。
您可以使用 Docker Hub 用户帐户免费获得一个私有存储库。如果您需要更多私有存储库,则需要升级 Docker Hub 计划。
然后,您将只向付费客户提供访问权限,并拥有所有拉取请求的完整记录。
答案2
您基本上正在寻找如何通过容器映像分发商业软件的解决方案。
总而言之,关于如何实现这一目标,有几个概念和哲学。
使用 Docker Hub,您可以创建令牌或邀请您的客户作为用户加入您的团队,但这有一定的成本预期,并且只能扩展到一定限度。
Docker 为您提供的解决方案是加入 Docker Verified Publisher (DVP) 计划,并公开通过 Docker Hub 分发您的软件,主要目标是扩大您的开发者受众。根据您的问题和您的产品,我认为这不是您想要的。
另一种解决方案是将软件映像推送到客户的注册表。虽然这听起来像是一个聪明的解决方案,但它在扩展性方面存在很多缺陷,例如访问控制、用户管理和私有网络上的注册表。
可能最适合您的情况的解决方案是托管专用的容器注册表实例。请注意,容器注册表并非生来平等,因此请选择 ISV Friendly Container Registry 以编程方式管理容器注册表并创建用户帐户或根据订阅或付款状态生成访问令牌。
在这种情况下,通过 API 与订阅/支付管理系统、CRM、ERP 进行交互是必须的。除了上述内容之外,还有其他方面可能有用,例如自定义域、明显的 Web UI 和审计功能。
有一篇关于通过容器镜像分发商业软件如果您想深入了解该主题,Harbor 会为您提供详细的说明。