0

Я пытаюсь получить изображения докеров из Container Engine для запуска на виртуальной машине Compute Engine. На моем ноутбуке я могу запустить gcloud docker pull gcr.io/projectid/image-taggcloud docker не работает на Compute Engine VM

Я просто раскручивается в Debian VM на Compute Engine, но когда я пытаюсь запустить любую gcloud docker команду я получаю ERROR: (gcloud.docker) Docker is not installed.

> gcloud --version 
Google Cloud SDK 140.0.0 
alpha 2017.01.17 
beta 2017.01.17 
bq 2.0.24 
bq-nix 2.0.24 
core 2017.01.17 
core-nix 2017.01.17 
gcloud 
gsutil 4.22 
gsutil-nix 4.22 

> gcloud docker --version 
ERROR: (gcloud.docker) Docker is not installed. 

https://cloud.google.com/sdk/gcloud/reference/docker создает впечатление, что gcloud docker должен работать.

Должен ли я установить докер на виртуальную машину перед запуском gcloud docker?

ответ

2

Я должен установить докер на виртуальную машину перед запуском gcloud docker?

Да. Сообщение об ошибке сообщает вам, что Docker необходимо установить на машину для работы gcloud docker.

Вы можете либо установить докеры вручную на свою виртуальную машину Debian, либо запустить виртуальную машину с предварительно установленной док-станцией на машине, например Container-Optimized OS from Google.

1

Per интуицией я попытался установить докер с sudo apt-get install docker, но я был неправ, фактическое имя докер пакет docker.io, поэтому я перезапустил процесс и работал так:

  1. Установите пакет Docker:

sudo apt-get install docker.io

  1. испытания, если докер работает

sudo gcloud docker ps

  1. Вытяните изображение из хранилища изображений, например, gcr.io. Если у вас нет , используйте тег последние.

sudo gcloud docker -- pull gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest

  1. Выполнить изображение. Не забудьте правильно указать отображение порта, первый порт будет открыт в экземпляре GCE, а второй - тот, который экспонируется внутри контейнера докера, например EXPOSE 8000. Например, в следующем примере мое приложение настроено на работу с портом 8000, но доступ к нему будет доступен общественности по умолчанию по адресу www, 80.

sudo docker run -d -p 80:8000 --name=$APPLICATION_IMAGE_NAME \ --restart=always gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest

Флаг --restart позволит этот контейнер должен быть перезапущен каждый раз, когда экземпляр перезапускает

Я надеюсь, что это работает для вас.