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