Отправка реестра контейнеров

Я пытаюсь отправить образ докера в реестр облачных контейнеров Google. Однако я продолжаю получать несанкционированные действия. Это на машине Windows.

Я попробовал несколько вещей, сначала я попытался настроить публикацию с помощью сообщества Visual Studio 2019. Затем я, наконец, попробовал консоль и действительно увидел, что ошибка неавторизована.

Вот что я пробовал:

docker push us.gcr.io:443/my-project-id/mycontainer

Он ведет себя так, как будто идет, а затем сообщает мне, что у меня нет разрешений

Затем он предлагает расширенные методы аутентификации, что приводит меня к созданию файла ключей json. Для простоты я назвал ключевой файл чем-то простым, например, «keyfile.json».

Затем я следую расширенным инструкциям.

Начну с этого:

set /p PASS=<keyfile.json

когда я нажимаю Enter, мне предлагается команда, и я набираю это:

docker login -u _json_key -p "$(cat keyfile.json)" https://us.gcr.io

Я получаю сообщение об ошибке: docker login requires at most 1 argument

Наконец, я обнаружил, что могу использовать репозиторий Google и инструменты сборки, которые помещают изображение в репозиторий, но я хотел бы иметь возможность загружать его вручную.

Какие-либо предложения?


person Brad    schedule 09.10.2019    source источник
comment
Вы прочитали и выполнили все шаги, описанные здесь: cloud.google .com / container-registry / docs /.   -  person Kolban    schedule 09.10.2019
comment
Да, это были мои первые шаги. Наличие разрешений на толкание дало мне кроличью нору. Я считаю, что у меня есть разрешения. Моя учетная запись является владельцем проекта, поэтому у нее должны быть все разрешения.   -  person Brad    schedule 09.10.2019
comment
Какая у вас ОС? Вы пробовали другой метод аутентификации (docker-credential-gcr и gcloud auth configure-docker)?   -  person guillaume blaquiere    schedule 09.10.2019
comment
Я не слышал о опции docker-credential-gcr, я был в восторге. Я попробовал это, и выскочила веб-страница, и я вошел в систему и дал доступ к контейнерам. Затем попытался нажать, но все равно не получилось. :( Я уже безуспешно использовал gcloud auth configure-docker.   -  person Brad    schedule 09.10.2019


Ответы (2)


Ага! У меня была такая проблема. Что вам нужно сделать, так это запустить:

gcloud auth configure-docker

Прочтите это

По сути, вам необходимо аутентифицировать gcloud, чтобы иметь возможность отправлять / извлекать из каталога gcloud.

person DUDANF    schedule 18.10.2019

За вашу ошибку docker login requires at most 1 argument. При повторном чтении сообщения об ошибке «не более 1 аргумента» указывает, что пользователь и пароль не обрабатывались как параметры. Сложно увидеть, но тире в коде немного длиннее

Попробуйте вместо этого:

docker login -u my-username -p my-password registry.myclient.com

Хотя это выглядит похоже, -u и -p не то же самое, что –u и –p (немного длиннее тире).

Теперь, чтобы прояснить роль Project: Owner, как бы странно это ни звучало, она не предоставляет вам все разрешения по умолчанию, однако, если вам не хватает каких-либо разрешений в проекте (возвращенная ошибка будет аналогичной [Missing necessary permission iam*] ... Please grant the roles/iam.* role), вы сможете предоставить их себе.

Для отправки изображения в регистрацию контейнера роль владельца имеет права по умолчанию

Когда вы говорите, что делаете это на компьютере с Windows, вы имеете в виду, что установили Cloud SDK, чтобы загрузить образ с локального компьютера? Проблема может заключаться в том, что вы неправильно аутентифицируете проект.

Или вы имеете в виду, что вы получили доступ к GCP через браузер в Windows и запускаете команды из Cloud Shell?

person Ernesto U    schedule 18.10.2019