可信内容
Docker Hub 的可信内容提供了一系列精选的高质量、安全的镜像,旨在让开发者对所用资源的可靠性和安全性充满信心。这些镜像稳定、定期更新并遵循行业最佳实践,为构建和部署应用程序奠定了坚实基础。Docker Hub 的可信内容包括 Docker 官方镜像、已验证发布者镜像和 Docker 赞助的开源软件镜像。
Docker 官方镜像
注意Docker 正在为 Docker 官方镜像 (DOI) 停用 Docker 内容信任 (DCT)。从 2025 年 8 月 8 日开始,最旧的 DOI DCT 签名证书将开始到期。如果您将
docker trust命令与 DOI 一起使用,可能已经开始看到过期警告。这些证书一旦被 Docker 客户端缓存,随后将不会刷新,这使得证书轮换不切实际。如果您已将DOCKER_CONTENT_TRUST环境变量设置为 true (DOCKER_CONTENT_TRUST=1),DOI 拉取将开始失败。解决方法是取消设置DOCKER_CONTENT_TRUST环境变量。docker trust inspect的使用也将开始失败,并且不应再用于 DOI。有关更多详细信息,请参阅 https://www.docker.com/blog/retiring-docker-content-trust/。
Docker 官方镜像是在 Docker Hub 上托管的一组精选 Docker 仓库。
Docker 建议您在项目中使用 Docker 官方镜像。这些镜像有清晰的文档,遵循最佳实践,并定期更新。Docker 官方镜像支持大多数常见用例,非常适合 Docker 新用户。高级用户可以从更专业的镜像变体中受益,也可以在 Dockerfile 学习过程中查看 Docker 官方镜像。
注意Docker 官方镜像的使用受 Docker 服务条款的约束。
这些镜像提供了重要的基础仓库,可作为大多数用户的起点。
这包括操作系统,例如 Ubuntu 和 Alpine,编程语言运行时,例如 Python 和 Node,以及其他基本工具,例如 memcached 和 MySQL。
这些镜像是 Docker Hub 上 最安全的镜像。这尤其重要,因为 Docker 官方镜像是一些最受欢迎的 Docker Hub 镜像。通常,Docker 官方镜像几乎没有或完全没有包含 CVE 的软件包。
这些镜像展示了 Dockerfile 最佳实践,并提供了清晰的文档,可作为其他 Dockerfile 作者的参考。
属于该计划的镜像在 Docker Hub 上有一个特殊徽章,方便您识别属于 Docker 官方镜像的项目。

支持的标签和对应的 Dockerfile 链接
每个 Docker 官方镜像的仓库描述都包含一个“**支持的标签和相应的 Dockerfile 链接**”部分,其中列出了所有当前标签以及指向使用这些标签创建镜像的 Dockerfile 的链接。此部分的目的是显示可用的镜像变体。

同一行上列出的标签都指向相同的底层镜像。多个标签可以指向同一个镜像。例如,在从 `ubuntu` Docker 官方镜像仓库截取的上一个截图中,标签 `24.04`、`noble-20240225`、`noble` 和 `devel` 都指向同一个镜像。
Docker 官方镜像的 latest 标签通常经过优化,易于使用,并包含各种有用的软件,例如开发和构建工具。通过将镜像标记为 latest,镜像维护者实际上是在建议将该镜像用作默认镜像。换句话说,如果您不知道使用哪个标签或不熟悉底层软件,您应该从 latest 镜像开始。随着您对软件和镜像变体的理解加深,您可能会发现其他镜像变体更适合您的需求。
精简镜像
许多语言栈(例如 Node.js、Python 和 Ruby)都提供了 slim 标签变体,旨在提供一个轻量级的、可用于生产环境的基础镜像,其中包含较少的软件包。
slim 镜像的典型使用模式是作为 多阶段构建 最终阶段的基础镜像。例如,您在构建的第一阶段使用 latest 变体构建应用程序,然后将应用程序复制到基于 slim 变体的最终阶段。这是一个 Dockerfile 示例。
FROM node:latest AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . ./
FROM node:slim
WORKDIR /app
COPY --from=build /app /app
CMD ["node", "app.js"]Alpine 镜像
许多 Docker 官方镜像仓库也提供 alpine 变体。这些镜像构建在 Alpine Linux 发行版而非 Debian 或 Ubuntu 之上。Alpine Linux 专注于为容器镜像提供小巧、简单且安全的基础,而 Docker 官方镜像 alpine 变体通常旨在仅安装必要的软件包。因此,Docker 官方镜像 alpine 变体通常甚至比 slim 变体更小。
需要注意的主要问题是 Alpine Linux 使用 musl libc 而不是 glibc。此外,为了最小化镜像大小,基于 Alpine 的镜像通常默认不包含 Git 或 Bash 等工具。根据您的程序中 libc 需求或假设的深度,您可能会因为缺少库或工具而遇到问题。
当您使用 Alpine 镜像作为基础时,请考虑以下选项,以使您的程序与 Alpine Linux 和 musl 兼容:
- 针对 musl libc 编译您的程序
- 将 glibc 库静态链接到您的程序中
- 完全避免 C 依赖(例如,构建不带 CGO 的 Go 程序)
- 在 Dockerfile 中自行添加所需的软件。
如果您不熟悉如何安装软件包,请参阅 Docker Hub 上 alpine 镜像的描述中的示例。
代号
带有类似《玩具总动员》角色名称(例如 bookworm、bullseye 和 trixie)或形容词(例如 jammy 和 noble)的标签表示它们所使用的基础镜像的 Linux 发行版代号。Debian 版本代号基于《玩具总动员》角色,而 Ubuntu 的代号形式为“形容词 动物”。例如,Ubuntu 24.04 的代号是“Noble Numbat”。
Linux 发行版指示符很有帮助,因为许多 Docker 官方镜像提供了基于多个底层发行版版本(例如,`postgres:bookworm` 和 `postgres:bullseye`)构建的变体。
其他标签
除了这里描述的标签外,Docker 官方镜像标签可能还包含其他提示,说明其镜像变体的用途。通常,这些标签变体会在 Docker 官方镜像仓库文档中进行解释。阅读“如何使用此镜像”和“镜像变体”部分将帮助您了解如何使用这些变体。
已验证发布者镜像
Docker 认证发布商计划提供由 Docker 认证的商业发布商发布的高质量镜像。
这些镜像帮助开发团队构建安全的软件供应链,在流程早期最大限度地减少恶意内容暴露,从而节省后期的时间和金钱。
属于该计划的镜像在 Docker Hub 上有一个特殊徽章,方便用户识别 Docker 认证为高质量商业发布商的项目。

Docker 赞助的开源软件镜像
Docker 赞助的开源软件 (OSS) 计划提供由 Docker 赞助的开源项目发布和维护的镜像。
属于此计划的镜像在 Docker Hub 上有一个特殊徽章,方便用户识别 Docker 验证为可信、安全且活跃的开源项目。
