如何使用 docker scout push 命令将镜像推送到 Docker Scout

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何使用 docker scout push 命令将 Docker 镜像推送到 Docker Scout。Docker Scout 是一项帮助你了解并改善容器镜像安全状况的服务。

你将探索如何将镜像推送到默认的 Docker Scout 组织,如何使用 --org 标志将镜像推送到特定组织,如何在生成软件物料清单(SBOMs)的同时推送镜像,以及如何对推送操作进行预演,以便在不实际推送镜像的情况下了解会发生什么。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/push("Push Image to Repository") subgraph Lab Skills docker/pull -.-> lab-555209{{"如何使用 docker scout push 命令将镜像推送到 Docker Scout"}} docker/push -.-> lab-555209{{"如何使用 docker scout push 命令将镜像推送到 Docker Scout"}} end

将镜像推送到 Docker Scout

在这一步中,你将学习如何将 Docker 镜像推送到 Docker Scout。Docker Scout 是一项帮助你了解并改善容器镜像安全状况的服务。在推送镜像之前,你需要在本地构建或拉取一个 Docker 镜像。

首先,让我们拉取一个将用于此步骤的示例镜像。我们将使用 Docker Hub 上的 hello-world 镜像。

docker pull hello-world

你应该会看到表明镜像正在被拉取和下载的输出。

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

现在我们已经有了这个镜像,就可以将其推送到 Docker Scout 了。为此,我们使用 docker scout push 命令,后面跟上镜像名称和标签。

docker scout push hello-world:latest

你应该会看到类似这样的输出,表明镜像正在被推送到 Docker Scout 并进行分析。

Analyzing image hello-world:latest...
...
Image hello-world:latest pushed to Docker Scout.

此命令将 hello-world:latest 镜像推送到你默认的 Docker Scout 组织。然后,Docker Scout 将分析该镜像是否存在漏洞和其他安全问题。

将镜像推送到 Docker Scout 中的特定组织

在这一步中,你将学习如何将 Docker 镜像推送到 Docker Scout 中的特定组织。如果你隶属于多个组织,或者想在 Docker Scout 中按照不同的组织架构对镜像进行分类,这将非常有用。

要将镜像推送到特定组织,你可以使用 --org 标志,后面跟上组织名称。让我们再次使用 hello-world:latest 镜像,并将其推送到一个名为 my-org 的假设组织。注意: 如果你有实际要使用的组织名称,请将 my-org 替换为该名称。在本实验中,我们将以 my-org 为例。

docker scout push hello-world:latest --org my-org

你应该会看到与上一步类似的输出,但这次会表明镜像正在被推送到指定的组织。

Analyzing image hello-world:latest...
...
Image hello-world:latest pushed to Docker Scout organization my-org.

此命令告知 Docker Scout 将 hello-world:latest 镜像与 my-org 组织关联起来。这有助于在特定团队或项目的上下文中管理和查看镜像。

推送镜像并生成软件物料清单 (SBOM)

在这一步中,你将学习如何将 Docker 镜像推送到 Docker Scout 并同时为该镜像生成软件物料清单 (Software Bill of Materials, SBOM)。SBOM 是构成软件组件的成分的正式列表,是了解软件安全性和许可情况的重要工具。

要在推送镜像时生成 SBOM,你可以在 docker scout push 命令中使用 --sbom 标志。让我们再次使用 hello-world:latest 镜像,并在推送时为其生成 SBOM。

docker scout push hello-world:latest --sbom

你应该会看到表明镜像正在被分析,并且 SBOM 正在生成并随镜像一起推送的输出。

Analyzing image hello-world:latest...
Generating SBOM for hello-world:latest...
...
Image hello-world:latest pushed to Docker Scout with SBOM.

--sbom 标志指示 Docker Scout 在推送过程中为镜像创建 SBOM。然后,这个 SBOM 将与 Docker Scout 中的镜像关联起来,提供有关镜像内组件的详细信息。

进行镜像推送的预演

在这一步中,你将学习在将 Docker 镜像推送到 Docker Scout 时如何进行“预演(dry run)”。预演可以让你了解如果推送镜像会发生什么,但实际上并不会执行推送操作。这对于测试命令并确保其配置正确,然后再进行实际推送非常有用。

要进行预演,你可以在 docker scout push 命令中使用 --dry-run 标志。让我们再次使用 hello-world:latest 镜像,并对推送操作进行预演。

docker scout push hello-world:latest --dry-run

你应该会看到表明命令正在模拟推送操作的输出。它会显示将要执行的步骤,例如分析镜像以及可能生成 SBOM,但实际上不会将镜像上传到 Docker Scout。

Analyzing image hello-world:latest...
Dry run: Image hello-world:latest would be pushed to Docker Scout.

--dry-run 标志是一种安全的方式,可用于验证你的 docker scout push 命令及其选项,而不会影响你的 Docker Scout 仓库。

总结

在本次实验中,你学习了如何使用 docker scout push 命令将 Docker 镜像推送到 Docker Scout 进行安全分析。你首先拉取了一个示例镜像,然后成功将其推送到默认的 Docker Scout 组织。

此外,你还探索了如何使用 --org 标志将镜像推送到 Docker Scout 中的特定组织,展示了该命令在跨不同组织结构管理镜像方面的灵活性。