Доступ к Docker-контейнеру из реестра проектов - PullRequest
0 голосов
/ 13 июня 2018

Итак, мой образ докера загружен в реестр моих проектов.Я могу перейти к https://console.cloud.google.com/gcr/images/ и вижу там свое изображение.

Теперь я хочу запустить виртуальную машину в этом проекте, а на этом использовать Docker для запуска этого самого образа.

Это команда внутри моей виртуальной машины:

sudo /usr/bin/docker run eu.gcr.io/my-project-name/example001

Ответ:

Unable to find image 'eu.gcr.io/.../example001:latest' locally
/usr/bin/docker: Error response from daemon: unauthorized: You don't have the needed permissions to perform this op
eration, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.goo
gle.com/container-registry/docs/advanced-authentication.
See '/usr/bin/docker run --help'.

Пожалуйста, смотрите прикрепленное изображение.Я могу перечислить свои изображения, если я определю «eu.gcr.io / ...» в качестве пути моего проекта.Однако, кажется, что машина работает на ".gcr.io", поэтому не может получить доступ к моему изображению?Как бы это исправить - и почему мой образ на «eu.gcr.io» и машина на «.gcr.io», я не могу найти способ изменить это (либо переместить изображение в gcr.io, либо переместитьмашина для, eu.gcr.io).Однако я не уверен, что это проблема.

Может быть, это проблема аутентификации с докером?enter image description here

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Ответ находится здесь:

https://serverfault.com/questions/900026/gcp-no-access-to-container-registry-from-compute-engine

Это команда docker, которая требует авторизации.Проблема не в имени хоста (eu.gcr.io).Я использовал команду «gcloud docker - pull ...», чтобы получить образ из хранилища для использования в моей виртуальной машине.

0 голосов
/ 13 июня 2018

после создания виртуальной машины Linux на GCP и SSH к ней необходимо установить Google SDK 1 с использованием Cloud SDK со сценариями] 1 или вручную.

Если вы используете Ubuntu, следуйте документации здесь , если вы устанавливаете с Red Hat или CentOS, следуйте документации здесь после завершения работы с Google SDK, вам нужно запустить gcloud init для инициализации SDK,просто откройте терминал и ленту [gcloud init] вы должны настроить свой профиль.после этого вам нужно установить Docker

  • sudo apt-get -y install docker-ce
  • sudo systemctl start docker

У вас должен быть доступв реестры, в которые вы будете отправлять и извлекать данные.

Сконфигурированный Docker для использования gcloud в качестве помощника по учетным данным.Чтобы использовать gcloud в качестве доверенного помощника , выполните команду:

  • gcloud auth configure-docker

После этого вы можете тянуть или выдвигать изображения навашего реестра с помощью команды gcloud с докером, как показано ниже:

Push: докер gcloud - push gcr.io/google-containers/example-image:latest

pull: докер gcloud - pull gcr.io/google-containers/example-image:latest

0 голосов
/ 13 июня 2018

ВМ в основном не может быть в «.gcr.io», она может работать в неевропейском регионе / зоне, но это не должно быть проблемой.

С точки зрения контроля доступа GCP реестрпросто ведро.Поэтому я считаю, что первое, что вам нужно проверить, - это то, что виртуальная машина имеет доступ к Google Cloud Storage.С помощью gcloud:

gcloud compute instances describe <instance-name>

проверьте, есть ли у виртуальной машины область для чтения из devstorage:

serviceAccounts:
- email: ...-compute@developer.gserviceaccount.com
  scopes:
  - https://www.googleapis.com/auth/devstorage.read_only
  - ...

Эта область должна быть доступна для чтения из реестра:

https://www.googleapis.com/auth/devstorage.read_only

Если у вас нет такой области действия на ВМ, но у вас настроен gcloud, вы можете использовать gcloud в качестве помощника по учетным данным:

gcloud auth configure-docker

, как указано вдокумент, на который вы ссылались: https://cloud.google.com/container-registry/docs/advanced-authentication#gcloud_as_a_docker_credential_helper

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