在Docker Hub上发布内容

预计阅读时间:9分钟

允许的内容和支持选项

  • 可以在Docker Hub上的经过验证的发布者资料下发布在Docker Enterprise上运行的内容。此内容还可能有资格成为Docker认证的容器或插件映像,并因此获得Docker / Publisher的协作支持。

  • 在Docker社区上运行的内容可能会在Docker Hub中发布,但Docker不支持,也没有资格获得认证。

  • 需要非认证基础结构环境的内容可能不会发布。

如果您的内容: 可以发表 可以认证 由出版商支持
在Docker社区上工作 是的 可选的
在Docker认证基础架构上不起作用 不适用 不适用

入职

Docker Hub发布过程从登录页面开始:使用Docker ID登录并指定私有或公共存储库中的产品名称和图像源。

指定来源后,提供内容清单项以填充产品详细信息页面。这些项目包括徽标,说明以及许可和支持链接,以便客户可以就您的图像做出明智的决定。这些项目与图像本身一起提交以进行审核。

然后,Docker Hub团队会对您的图像和元数据进行全面审查。我们使用Docker安全扫描来评估您的产品映像的安全性,并与您作为发布者共享结果。在图像审核阶段,我们与发布者来回迭代,以解决突出的漏洞和内容清单问题,直到准备发布图像为止。

商业内容和其他受支持的图像可能符合Docker认证容器或插件的质量标志。该程序的测试不仅仅包括漏洞扫描,还评估了容器映像,以获取多年经验中开发的Docker最佳实践。还建立了Docker与发布者之间的协作支持功能。请参阅下图,以获取高级别摘要:

发布工作流程

创造精彩的内容

创建您的内容,并遵循我们的最佳实践对其进行Dockerize。保持图像小,图层少,组件安全。请参阅下面列出的链接和指南,以构建和提供出色的内容:

在构建无漏洞的Docker映像时,以下是一些最佳做法:

选择一个安全的基本映像(请参阅您的DockerfileFROM:指令)

许多基本映像都有很强的安全记录,包括:

  • Debian Linux:小型且受严格控制的Debian-linux如果您当前正在使用Ubuntu,则它是一个不错的选择。

  • Alpine Linux:Alpine是最小的Linux发行版,具有出色的安全记录。

  • 基于阿尔卑斯应用图片:这包括python:alpineruby:alpine,和golang:alpine。它们是安全且最小的,同时提供了非阿尔卑斯替代产品的便利。

Docker强烈建议使用Alpine Linux。这个Linux发行版的创始人正在Docker领导一项计划,旨在为所有容器应用程序提供安全,紧凑的基础映像。

删除未使用的组件

通常,漏洞存在于容器化应用程序中未实际使用的组件中。为避免这种情况,您可以:

  • 使用该apt-get命令时,请遵循最佳实践。

  • 运行apt-get-remove以销毁构建但实际上未运行您的应用程序所需的任何组件。通常,这涉及创建多行Dockerfile指令,如下所示。以下示例显示了如何删除 它们curl以及将python-pip它们用于安装Pythonrequests 软件包后,全部都在单个Dockerfile指令中进行:

    RUN apt-get update && \
             apt-get install -y --no-install-recommends curl python-pip && \
             pip install requests && \
             apt-get remove -y python-pip curl && \
             rm -rf /var/lib/apt/lists/
    

只能在同一指令中删除在Dockerfile的一个指令中引入的文件(而不是在Dockerfile中的后续指令中)。

保持必需的组件为最新

您的映像由开放源代码库和程序包组成,这些程序包和程序包会随着时间的流逝而积累漏洞,因此会被修补。为确保产品的完整性,请保持图像最新:

  • 定期更新基本映像的版本,尤其是当您使用的是易受攻击的版本时。

  • 定期重建图像。包括命令的指令,例如 apt-get install ...拉取依赖关系的最新版本,其中可能包括安全修复程序。

创建并维护您的“验证发布者”个人资料

让Docker社区知道你是谁。添加您的详细信息,公司故事以及您的工作。至少,我们要求:

  • 法人名称
  • 公司网站
  • 电话号码
  • 有效的公司电子邮件
  • 公司图标/徽标(正方形;至少512x512px)

准备图像清单材料

您必须在包含产品源的Docker Hub上提供私有或公共存储库的名称空间(包括存储库和标签)。该存储库路径不会显示给用户,但是您选择的存储库将确定可供客户下载的产品层。

以下内容信息可帮助我们使您的产品看起来很棒且易于发现:

  1. 产品名称
  2. 产品图标/徽标
  3. 简短描述:一到两个句子的摘要;最多140个字符
  4. 类别:数据库,网络,商业软件等,以及任何搜索标签
  5. 详细描述:包括产品详细信息/螺距
  6. 萤幕撷取画面
  7. 支持链接
  8. 产品层名称
  9. 产品层级描述
  10. 产品等级价格
  11. 安装说明
  12. 许可协议的链接或文本

清单信息如何在UI中显示

这是一个近似的表示,随着我们的增强,某些元素可能会发生变化。

商店UI上显示的清单信息

支持您的用户

下载您内容的Docker用户稍后可能需要帮助,因此请做好准备!您随提交内容一起提供的信息可以节省将来的支持时间。

支援信息

如果您提供支持以及您的内容,请包括该信息。有支持网站吗?用户可以联系哪个电子邮件地址寻求帮助?是否有自助或故障排除资源?

支持SLA

为您提供的每个图像包括一个服务水平协议(SLA)。SLA是您对用户提供的支持的性质和级别的承诺。确保您的SLA包括支持时间和响应时间期望(如果适用)。

安全和审核政策

Docker Hub 审核映像的消费者活动,以向您提供有关产品使用情况的情报。

使用情况审核和报告

除非另有协商,否则对发布者内容的活动的审核将保留不少于180天。

将该活动的每月报告与以下数据一起提供给发布者:(1)按日期和时间由免费和付费客户下载的内容的报告;(2)报告内容的付费客户的购买,取消,退款,税款(如果适用)和订阅时间的报告;(3)发行人应收取的合并金额。

认证

Docker Hub中显示三种认证。

认证的集装箱徽章

证明已对Docker Hub上的容器映像进行了测试;遵守最佳做法准则;在Docker认证基础架构上运行; 已证明来源;已扫描漏洞;并得到Docker和内容发布者的支持

认证插件徽章

该认证是为访问系统级Docker API的卷,网络和其他插件而设计的。Docker认证插件提供了与Docker认证容器相同的保证水平,但是通过了额外的API合规性测试套件,可以进一步提高安全性。

Docker认证发行商常见问题解答

什么是Docker认证程序?

Docker认证的Container映像和插件旨在区分Docker Hub上的高质量内容。客户知道Docker和发布者都支持该解决方案,就可以放心使用认证容器。可以在此处找到更多详细信息和应用程序

Docker认证的好处是什么?

Docker Hub促进了在Docker认证基础架构受信任的高质量内容上运行的Docker认证容器和插件。Docker认证徽章也可以与您产品的外部引用一起列出。

如何处理支持?

在Docker Enterprise上运行的所有Docker Certified Container映像和插件都在您现有的SLA的支持下,由发行商直接提供支持。通常,客户会与发布商联系以解决容器和应用程序级别的问题。同样,客户与Docker联系以获得Docker Enterprise支持。如果客户就应用程序问题致电Docker(反之亦然),则Docker会向客户提供有关发布者支持流程的建议,并在需要时直接执行移交给发布者的操作。在发布者和Docker之间交换支持票证需要TSAnet。

发布者如何申请Docker认证计划?

首先申请成为Docker技术合作伙伴

Official Images和Docker Certified有什么区别?

Official Images是Docker赞助的一个程序,用于策展和包装开源软件。尽管有时会涉及上游供应商,但情况并非总是如此。ISV直接明确提供,维护和支持Docker认证的内容。

插件认证如何处理?

Docker认证计划认识到需要对访问系统级接口(如存储卷和网络)的容器进行特殊的检查和测试。Docker将这些特殊容器标识为“插件”,需要发布者或Docker进行额外的测试。

码头工人码头工人轮毂购买图片