Pull docker изображение для другой архитектуры - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть система с воздушным зазором, на которой я запускаю несколько docker контейнеров. Я пытаюсь получить некоторые изображения на нем, но система отличается архитектурой, чем я использую. Для нескольких изображений (например, G CC) я мог просто сказать docker pull repo/gcc, и это работало нормально, однако по какой-то причине, когда я пытаюсь сделать docker pull repo/python, я получаю:

Using default tag: latest
latest: Pulling from repo/python
no matching manifest for linux/amd64 in the manifest list entries

Is Есть ли способ указать архитектуру в моем запросе Pull?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Если изображение не является многоархивным, вы не сможете эмулировать свою архитектуру, чтобы она соответствовала целевой архитектуре манифеста.

0 голосов
/ 07 февраля 2020

Чтобы ответить на вопрос из заголовка: вы можете вытащить изображение по дайджесту.

Пример: перечислить все поддерживаемые архитектуры (манифест):

$ 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"
         }
      },
...

А затем потянуть по дайджесту, например * Арка 1006 * (вытягивается на linux машине):

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

Но вы не можете запустить все архитектуры, поэтому это может быть бесполезно, когда вы извлекаете образ для другой архитектуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...