从 CLI 列出 ARM 的 Docker 映像

Oli*_*alo 13 macos docker

我拥有一台 Mac M1,我在上面运行 Docker。在 OSX 上,Docker 可以运行本机 ARM 映像,但也可以模拟 x86/amd64 来运行不是为 ARM 构建的映像。

我的问题很简单:从命令行,我试图找到显示图像平台的命令“docker image ls”的扩展。

$ docker 镜像 ls

存储库标签 平台 图像 ID 创建大小
................................arm64
........................ ......x86

我已经看到这个答案:How to filter Docker images by platform? 但它没有回答问题。操作系统和平台是两个不同的东西。

谢谢

rzl*_*vmp 23

这是您要找的吗?

\n
docker image inspect --format "{{.ID}} {{.RepoTags}} {{.Architecture}}" $(docker image ls -q)\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
sha256:fb495265b81ffaa0d3bf8887231b954a1139b2e3d611c3ac3ddeaff72313909c [postgres:10.11-alpine] amd64\n
Run Code Online (Sandbox Code Playgroud)\n

解释:

\n
    \n
  • $(docker image ls -q)\xe2\x86\x92 将所有图像 ID 作为参数传递给检查命令
  • \n
  • docker image inspect打印有关图像的详细信息\n\n
  • \n
\n

还可以添加管道grep,例如仅{inspect command} | egrep \'amd64$\'打印建筑amd64

\n


Phi*_*ppe 5

尝试docker image结合jq:

docker image inspect $(docker images -q) | jq -r '.[] | select(.Architecture=="arm64").RepoTags[]'
Run Code Online (Sandbox Code Playgroud)