"gcloud auth configure-docker" на экземпляре виртуальной машины GCP с Ubuntu неправильно настроен? - PullRequest
0 голосов
/ 02 февраля 2019

Я создал экземпляр виртуальной машины на GCP, используя Ubuntu 18.10.Когда я SSH виртуальной машины без каких-либо изменений и попробуйте:

gcloud info

Я получил несколько предупреждений:

System PATH: [/snap/google-cloud-sdk/66/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game
s:/snap/bin]
Python PATH: [/snap/google-cloud-sdk/66/lib/third_party:/snap/google-cloud-sdk/66/lib:/snap/google-cloud-sdk/66/usr/lib/python2.7/:/snap
/google-cloud-sdk/66/usr/lib/python2.7/plat-x86_64-linux-gnu:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-tk:/snap/google-cloud-sdk/6
6/usr/lib/python2.7/lib-old:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-dynload]
Cloud SDK on PATH: [False]
Kubectl on PATH: [False]
WARNING: There are old versions of the Google Cloud Platform tools on your system PATH.
  /usr/bin/snap

Если я пытаюсь аутентифицироваться с:

sudo gcloud auth configure-docker

Я вижу:

WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
WARNING: `docker` not in the system PATH.
`docker` and `docker-credential-gcloud` need to be in same PATH in order to work correctly together.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
The following settings will be added to your Docker config file 

Похоже, установлена ​​довольно свежая версия gcloud:

sudo gcloud version

Google Cloud SDK 230.0.0
alpha 2019.01.11
beta 2019.01.11
bq 2.0.39
core 2019.01.11
gsutil 4.35
kubectl 2019.01.11

Кажется, мне не разрешено обновлять gcloud в таком случае.

Затем я установил Docker и вытащил образ докера.

sudo snap install docker
sudo docker pull tensorflow/serving

Работает нормально.Проблема в том, что я не могу вставить изображение в реестр контейнеров GCP:

sudo docker tag tensorflow/serving gcr.io/xxx/tf-serving
sudo docker push gcr.io/xxx/tf-serving
Unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request
st, follow the steps in https://cloud.google.com/container-registry/docs/advanced-authentication

, и в ссылке объясняется, что мне нужно запустить:

sudo gcloud auth configure-docker

Как мне исправитьвопрос?Эта проблема уже возникает, когда я SSH виртуальной машины?

WARNING: `docker-credential-gcloud` not in system PATH.

Я могу без проблем вставить изображение на DockerHub.

Я попытался переустановить google-cloud-sdk:

sudo apt-get update && sudo apt-get install google-cloud-sdk

Но теперь мне нужно использовать:

sudo gcloud alpha auth configure-docker

и конец я все еще не могу нажать на изображение.

Кажется, это связано с некоторой проблемой пути:

Cloud SDK on PATH: [False]
Kubectl on PATH: [False]
WARNING: There are old versions of the Google Cloud Platform tools on your system PATH.
  /usr/bin/snap

Есть идеи?Я следовал документации GCP шаг за шагом.Я также смотрю на GCP IAM, чтобы предоставить некоторый доступ к своему ведру.

Я новичок в GCP и Cloud, поэтому я, вероятно, упускаю что-то очевидное.Кстати, мне нужно создать образ Docker с помощью сценария оболочки, поэтому мне нужно использовать виртуальную машину такого типа, потому что на другой виртуальной машине, для которой уже много всего предварительно установлено, смонтированы с флагом «noexec».

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Вот что сейчас работает (спасибо Google за помощь)

Настройка:

  • Выберите Ubuntu 18.10 (GNU / Linux 4.18.0-1005-gcp x86_64)
    добавить 20 ГБ диска + разрешить http и http
    установить доступ для каждого API -> Хранилище: чтение Запись
  • sudo snap удалить google-cloud-sdk
  • curl https://sdk.cloud.google.com |bash
  • переподключиться к виртуальной машине
  • установить докер https://docs.docker.com/install/linux/docker-ce/ubuntu/
    sudo apt-get удалить docker docker-engine docker.io containerd runc
    sudo apt-get update
    sudo apt-get install \
    apt-transport-https \
    ca-сертификаты \
    curl \
    gnupg-agent \
    общие свойства программного обеспечения
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo apt-key add -
    sudo add-apt-repository \
    "deb [arch = amd64] https://download.docker.com/linux/ubuntu \
    $ (lsb_release -cs) \
    stable"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    sudo docker запускает hello-world # test
  • sudo usermod -a -G docker ВХОД
  • переподключение к виртуальной машине
  • gcloud auth configure-docker

тестирование Docker Pull / Push на GCP

  • Docker Pull Tenorsflow /Обслуживание
  • тег docker тензор потока / обслуживание gcr.io/BUCKET_NAME/tf-serving
  • docker push gcr.io/BUCKET_NAME/tf-serving
    (если вы не предоставляете права на записьпри создании виртуальной машины: используйте «gcloud auth login»)

теперь это работает

0 голосов
/ 05 июня 2019

Пакет Snap содержит docker-credential-gcloud в /snap/google-cloud-sdk/current/bin/.Вы можете сделать символическую ссылку на /usr/local/bin, используя:

sudo ln -s /snap/google-cloud-sdk/current/bin/docker-credential-gcloud /usr/local/bin

После этого загрузка изображений Docker в Реестр контейнеров Google (gcr.io) работает нормально.

Я также пытался sudo snap alias google-cloud-sdk.docker-credential-gcloud docker-credential-gcloudсоздайте символическую ссылку, аналогичную самой для gcloud.Но это не удалось со следующей ошибкой:

error: cannot perform the following tasks:
- Setup manual alias "docker-credential-gcloud" => "docker-credential-gcloud" for snap "google-cloud-sdk" (cannot enable alias "docker-credential-gcloud" for "google-cloud-sdk", target application "docker-credential-gcloud" does not exist)
0 голосов
/ 02 февраля 2019

проблема может быть в том, что snap установить;просто удалите /snap/google-cloud-sdk из системы.или проверьте which gcloud, чтобы увидеть, какой из них даже используется.версия apt , по-видимому, не имеет этих доступных пакетов докеров, а также $PATH только перечисляет эту версию snap.

обычный, компоненты могут быть обновлены с:

gcloud components update

или перечислены:

gcloud components list

или установлены:

gcloud components install docker-credential-gcr 

предложитпросто установите автономную версию с:

curl https://sdk.cloud.google.com | bash

после удаления версий snap и apt из файловой системы и $PATH.

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