发布于2026-08-19 阅读(0)
扫一扫,手机访问
在这个实验中,你将学习如何使用 CODE0 命令来查看镜像清单。我们将从拉取一个多架构的 Docker 镜像开始,具体是 CODE1 镜像,以此来了解 Docker 如何处理不同架构的镜像。
拉取镜像后,你将使用 CODE0 来检查与多架构镜像关联的清单列表。然后,你将深入检查该列表中的特定镜像清单,最后探索 CODE1 命令的详细输出选项,以全面了解镜像清单的详细信息。
在这一步中,你将学习如何拉取多架构的 Docker 镜像。多架构镜像指的是一个单一的镜像标签,可在不同架构(如 CODE0、CODE1 等)中使用。当你拉取多架构镜像时,Docker 会自动为你系统的架构选择正确的镜像层。
我们将拉取 CODE0 镜像,它是一种轻量级的 Linux 发行版,常用于 Docker 容器。CODE1 镜像是一个多架构镜像。
要拉取 CODE_0 镜像,请打开终端并运行以下命令:
docker pull alpine
此命令会指示 Docker 从 Docker Hub 下载 CODE0 镜像的最新版本。由于 CODE1 是多架构镜像,Docker 会下载适合你 LabEx 虚拟机架构的镜像层。
你应该会看到类似以下的输出,表明 Docker 正在拉取镜像:
Using default tag: latest
latest: Pulling from library/alpine
... (output showing download progress)
Digest: sha256:...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
CODE_0 行显示了为你的架构拉取的特定镜像清单的唯一标识符。
命令执行完成后,CODE_0 镜像将在你的 LabEx 虚拟机上可用,并可用于运行容器。
在上一步,我们把CODE0镜像拉取下来了。CODE1可是个多架构镜像,它的标签CODE_2其实指向的是一个清单列表。这个清单列表呢,就是一堆镜像清单的集合,每个清单都对应着一种不同的架构。当你去拉取多架构镜像的时候,Docker就会利用这个清单列表,为你的系统找到合适的镜像清单。
要查看 CODE0 镜像的清单列表,我们可以使用 CODE1 命令。该命令允许你查看镜像清单或清单列表的详细信息。
在终端中运行以下命令:
docker manifest inspect alpine:latest
这条命令会输出一个JSON文档,该文档代表了CODE0镜像的清单列表。输出会呈现出一个CODE1列表,每个清单对应着不同的架构,例如CODE2、CODE3、CODE4等等。列表里的每个清单都会包含像CODE5(架构和操作系统)以及CODE_6(特定架构的镜像清单的唯一标识符)这样的详细信息。
你会看到类似以下的输出(具体的摘要信息和清单数量可能会有所不同):
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:...",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:...",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v6"
}
},
...
]
}
此输出证实了 CODE_0 确实是一个包含各种架构清单的清单列表。这就是当你使用多架构标签时,Docker 知道为你的系统拉取哪个特定镜像的方式。
在上一步中,我们检查了 CODE_0 的清单列表。该列表包含多个条目,每个条目指向不同架构的特定镜像清单。现在,让我们来检查其中一个特定的镜像清单。
要检查特定的清单,我们需要其摘要信息(digest)。从 CODE0 的输出中,找到与你的 LabEx 虚拟机架构(即 CODE1)匹配的 CODE2。摘要信息看起来会像 CODE3。
一旦你获得了 CODE0 清单的摘要信息,就可以使用 CODE1 命令来检查它,命令后面要跟上镜像名称和摘要信息,两者用 CODE_2 符号分隔。
将 CODE0 替换为你在上一步输出中找到的 CODE1 平台的实际摘要信息。
docker manifest inspect alpine@YOUR_AMD64_DIGEST
例如,如果 CODE0 的摘要信息是 CODE1,那么命令将是:
docker manifest inspect alpine@sha256:f70734b6a266dcb51c52a820c34f3204cc6897445f6510b7a5be74d30a72f227
此命令将输出一个 JSON 文档,该文档表示 CODE_0 架构的特定镜像清单。这个清单包含有关镜像层(由其摘要信息标识)和镜像配置(同样由摘要信息标识)的详细信息。
你会看到类似以下的输出:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 1510,
"digest": "sha256:..."
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 2803897,
"digest": "sha256:..."
}
]
}
此输出展示了单个镜像清单的结构,列出了构成该特定架构镜像的配置和层。
在前面的步骤中,我们检查了清单列表和特定的镜像清单。CODE0 的默认输出会提供清单或清单列表的摘要信息。若要获取更详细的信息,包括镜像的完整配置,我们可以使用 CODE1 标志。
让我们再次检查 CODE0 的清单列表,但这次使用 CODE1 标志。这将显示清单列表,并且对于列表中的每个清单,还会显示完整的配置细节。
在你的终端中运行以下命令:
docker manifest inspect --verbose alpine:latest
此命令将输出一个更详细的 JSON 文档。对于 CODE0 列表中的每个条目,你现在会看到一个名为 CODE1 的额外字段。这个 CODE_2 字段包含了特定架构镜像的完整配置,包括诸如入口点、命令、环境变量、工作目录等详细信息。
你会看到类似以下的输出(CODE_0 部分的具体细节会有所不同):
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 528,
"digest": "sha256:...",
"platform": {
"architecture": "amd64",
"os": "linux"
},
"Config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Entrypoint": [
"/bin/sh"
],
"Cmd": null,
"WorkingDir": "/",
...
}
},
...
]
}
当你需要查看清单列表中镜像的详细配置时,使用 CODE_0 标志很有用,这对于调试或了解特定镜像的设置方式很有帮助。
在本次实验中,我们学习了如何使用 CODE0 命令来查看镜像清单。我们首先拉取了一个多架构镜像 CODE1,了解到单个标签可以代表不同架构的镜像。
然后,我们使用 CODE_0 查看与多架构镜像关联的清单列表,该列表详细列出了适用于各种架构的可用镜像清单。最后,我们探索了如何检查列表中的特定镜像清单,以及如何使用详细输出选项获取更详细的信息。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9