Как исправить ошибку "отказано: запрошенный доступ к ресурсу запрещен" из Docker Hub при создании манифеста

Я пытаюсь создать манифест для своего репозитория Docker Hub, чтобы у меня был многоплатформенный образ.

Моя процедура была следующей:

  1. Я начал с создания пустого репозитория и загрузки в него двух изображений, одного для amd64 и одного для arm64. Эти изображения можно просмотреть здесь: https://hub.docker.com/repository/docker/shadash/docker-multiarch-glusterfs-plugin
  2. Я вхожу в свою учетную запись Docker Hub с помощью интерфейса командной строки. Я попробовал следующие методы и получил ответ "Вход выполнен успешно":
docker login --username=shadash
docker login docker.io --username=shadash
docker login https://index.docker.io/v1 --username=shadash
docker login
  1. Я пытаюсь создать манифест:
docker manifest create shadash/docker-multiarch-glusterfs-plugin:latest shadash/docker-multiarch-glusterfs-plugin:x86_64 shadash/docker-multiarch-glusterfs-plugin:aarch64

И вот результат:

ошибки: отказано: запрошенный доступ к ресурсу запрещен неавторизованный: требуется аутентификация

  1. Я пробовал использовать манифест-инструмент (https://github.com/estesp/manifest-tool)
git clone https://github.com/estesp/manifest-tool
cd manifest-tool
make
./manifest-tool push from-spec someimage.yaml

someimage.yaml:

image: shadash/docker-multiarch-glusterfs-plugin:latest
manifests:
  - image: shadash/docker-multiarch-glusterfs-plugin:x86_64
    platform:
      architecture: amd64
      os: linux
  - image: shadash/docker-multiarch-glusterfs-plugin:aarch64
    platform:
      architecture: arm64
      os: linux

Результат:

FATA[0001] Проверка образа "shadash/docker-multiarch-glusterfs-plugin:x86_64" завершилась ошибкой: ошибки: отказано: запрошенный доступ к ресурсу запрещен неавторизованный: требуется аутентификация

Итак, похоже, проблема связана с просмотром моих существующих изображений. Тем не менее, я могу без проблем загрузить и установить эти плагины (протестировано на 3 разных машинах), и они также работают, когда я запускаю стек, который использует этот драйвер тома:

docker plugin install shadash/docker-multiarch-glusterfs-plugin:x86_64
docker plugin install shadash/docker-multiarch-glusterfs-plugin:aarch64

Я действительно застрял здесь, и я понятия не имею, почему я не могу создать манифестное изображение на основе этих изображений. Я успешно создал образ манифеста для jenkins, см. https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins

1 ответ

Это может произойти, если изображения, на которые вы ссылаетесь, не были отправлены.

Например, если либо shadash/docker-multiarch-glusterfs-plugin:x86_64 или shadash/docker-multiarch-glusterfs-plugin:aarch64 из вашего примера на шаге 3 не были отправлены, вы получите это сообщение об ошибке.

Решение состоит в том, чтобы отправить изображения перед запуском. docker manifest create.

Другие вопросы по тегам