Реестр контейнеров Google + Google Compute Engine + Docker

Я не могу найти способ заставить все эти три технологии работать вместе.

У меня есть реестр Google Container. В нем у меня есть 2 частных изображения, давайте назовем их A и B. Я хочу создать шаблон одного экземпляра, который выполняет следующие действия:

  1. Окно запуска -d gcr.io/project_id/A:latest
  2. docker run -d gcr.io/project_id/B:latest

Это все, что мне нужно сделать. Я надеялся сделать это в скрипте запуска, чтобы я мог просто использовать простое изображение в качестве своей базы и развернуть его в prod.

Опробовали все 3 версии Контейнер оптимизированной ОС и все 3 версии CoreOS. Каждый дает немного разные ошибки.

Некоторые примеры предлагают использовать gcloud docker -- pull, но gcloud не выполняет авторизацию правильно ни в одной из 6 сред, которые я пробовал.

Другие примеры предлагают использовать docker login -u oauth2accesstoken -p "$(gcloud auth application-default print-access-token)" https://gcr.ioЭто также не удается.

Единственный другой вариант, который я нашел, это сделать docker login -u _json_key -p "$(cat keyfile.json)" https://gcr.io, который позволил мне вытащить образы GCE. Недостатком этого подхода является то, как я могу получить этот ключевой файл в изображениях? Я думаю, что я могу создать собственное изображение с добавленным ключевым файлом, но я пытался придерживаться стандартного изображения, которое выполняет две команды запуска Docker и не более. Это невозможно?

1 ответ

Какие именно ошибки вы видите?

docker-credential-gcr может извлекать токены доступа из метаданных GCE. Он также может получить токен доступа gcloud SDK, выполнив gcloud config config-helper --format='value(credential.access_token) под сценой. gcloud auth print-access-token использовался в прошлом, но официально не поддерживается.

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