拉docker镜像用于不同的体系结构

时间:2020-02-07 13:53:41

标签: docker

我有一个空气隔离的系统,正在运行一些Docker容器。我正在尝试获取一些图像,但是系统与我正在运行的体系结构不同。对于一些图像(例如GCC),我只能说<rule name="Redirect" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"> <add input="{REQUEST_URI}" pattern="/parameter-1\?query=(.*)$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/parameter?" appendQueryString="true" redirectType="Permanent" /> </rule> ,但效果很好,但是由于某些原因,当我尝试进行docker pull repo/gcc时,我得到了:

docker pull repo/python

是否可以在请求请求中指定体系结构?

2 个答案:

答案 0 :(得分:3)

要回答标题中的问题:您可以按摘要提取图像。

示例:列出所有受支持的体系结构(清单):

$ docker manifest inspect ckulka/multi-arch-example
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2200,
         "digest": "sha256:6eaeab9bf8270ce32fc974c36a15d0bac4fb6f6cd11a0736137c4248091b3646",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2413,
         "digest": "sha256:f02e0fd2918a894ecd49d67b802c22082dc3c6424f6566e1753a83ba833b0993",
         "platform": {
            "architecture": "arm",
            "os": "linux",
            "variant": "v5"
         }
      },
...

然后按摘要操作,例如arm拱门(在linux机上拉):

$  docker pull ckulka/multi-arch-example@sha256:f02e0fd2918a894ecd49d67b802c22082dc3c6424f6566e1753a83ba833b0993

但是您不能运行所有体系结构,因此当您为其他体系结构提取图像时,它可能会毫无用处。

答案 1 :(得分:1)

如果映像不是多体系结构,则除非您将架构模拟为清单的目标架构,否则您将无法进行。