Проблема с аутентификацией Google GCP с помощью Dockers

Мне нужно поработать с некоторыми ранее загруженными образами докеров, хранящимися в хабах Google gcr.io.

Я делаю это на машине с Windows 10 со стандартными установками Docker и Google Cloud SDK (без Homebrew или чего-то подобного).

После установки разрешений для моей учетной записи gmail в разделе IAM GCP я все еще получаю это сообщение об ошибке при использовании этого в PowerShell:

docker pull gcr.io/blabla/blabla:latest

Ответ об ошибке от демона: unauthorized: у вас нет необходимых разрешений для выполнения этой операции, и у вас могут быть недействительные учетные данные. Чтобы подтвердить свой запрос, выполните следующие действия: https://cloud.google.com/container-registry/docs/advanced-authentication.

При повторной настройке аутентификации я получаю эти сообщения об ошибках

C: \ Program Files (x86) \ Google \ Cloud SDK> gcloud auth configure-docker

ВНИМАНИЕ: docker-credential-gcloud не входит в системный ПУТЬ. Помощник учетных данных Docker в gcloud можно настроить, но он не будет работать, пока это не будет исправлено.

ВНИМАНИЕ: docker не входит в системный ПУТЬ. docker и docker-credential-gcloud должны находиться в одном ПУТЬ для правильной совместной работы. Помощник учетных данных Docker в gcloud можно настроить, но он не будет работать, пока это не будет исправлено.

При поиске решений я наткнулся на этот поток, который, похоже, использует Команды macOS. Я нашел альтернативу Windows для 'which', то есть 'where', давая следующее:

C:\Program Files (x86)\Google\Cloud SDK>where gcloud
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd
C:\Users\l.cai\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gcloud
C:\Users\l.cai\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd

Но у меня много проблем с пониманием этого сообщения, объясняющего альтернативу для readlink. Замена частей этого синтаксиса на пути к файлам либо дает

'' не распознается как внутренняя или внешняя команда

or

Система не может найти указанный путь.

Многострочные команды также плохо работают в Windows PowerShell или CMD, поэтому я не уверен, куда они вводят команды.

Может ли кто-нибудь помочь мне с этим? Спасибо заранее.


person Larry Cai    schedule 07.01.2019    source источник


Ответы (2)


Ваша проблема в том, что ни gcloud, ни docker не настроены правильно для пользователя, под которым вы вошли в систему. Следующее - временное решение. Вам следует переустановить докер и облачный SDK.

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

Откройте командную строку Windows и выполните:

set PATH=C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin;C:\Program Files\Docker\Docker\Resources\bin;%PATH%
person John Hanley    schedule 07.01.2019
comment
Я выполнил команду, но вроде ничего не изменилось. Возвращаются те же ошибки. Я обновил OP с возвратами из 'where gcloud', если это что-то изменит. Кроме того, что мне делать по-другому при переустановке Docker и Cloud SDK? Оба были свежими установками со стандартными опциями. - person Larry Cai; 07.01.2019
comment
Тип 1_. Какой результат? - person John Hanley; 07.01.2019
comment
Тип 1_. Какой результат? - person John Hanley; 07.01.2019
comment
docker: Docker версии 18.09.0, сборка 4d60db4 ========== gcloud: Google Cloud SDK 228.0.0 | bq 2.0.39 | core 2018.12.07 | docker-credential-gcr | gsutil 4.34 | - person Larry Cai; 07.01.2019
comment
В своем сообщении вы говорите, что докер не находится в PATH, но вы можете его выполнить, что означает, что он находится в PATH. - person John Hanley; 07.01.2019
comment
Какая версия Windows 10 - Домашняя или Профессиональная? - person John Hanley; 07.01.2019

Нашел решение: войдите в саму Windows с учетной записью администратора. Ни одно из других исправлений / потоков, упомянутых в моем OP, не оказалось актуальным.

У меня была учетная запись локального администратора, но, поскольку она была создана недавно, я привык входить в свою обычную рабочую учетную запись (не администратор) и вводить учетные данные локального администратора только по мере необходимости (например, при запуске программ с повышенными привилегиями) .

Таким образом, docker, powershell и облачный SDK могут быть запущены индивидуально с правами администратора, но где-то в цепочке это ломается, и мне ничего не предлагается. Вход в систему с учетной записью администратора позволяет обойти это.

person Larry Cai    schedule 10.01.2019