gcloud docker无法在Compute Engine虚拟机上工作

我正试图从容器引擎获得docker图像运行在计算引擎VM上。 在我的笔记本电脑上,我可以运行gcloud docker pull gcr.io/projectid/image-tag

我只是在计算引擎上创build了Debian虚拟机,但是当我尝试运行任何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之前,我应该在VM上安装gcloud docker吗?

在运行gcloud docker之前,我应该在VM上安装docker吗?

是。 该错误消息告诉你Docker需要安装在机器上才能使gcloud docker正常工作。

您可以手动在您的Debian VM上安装Docker,也可以启动预装了Docker的虚拟机,例如Google提供的容器优化的操作系统 。

根据直觉,我试图用sudo apt-get install docker docker.io sudo apt-get install docker ,但是我错了,实际的docker.io包名是docker.io ,所以我重新启动了这个过程并以这种方式工作:

  1. 安装docker软件包:

sudo apt-get install docker.io

  1. testingdocker工作是否正常

sudo gcloud docker ps

  1. 从图像存储库中提取图像,例如gcr.io。 如果没有特定的标签使用最新的

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

  1. 运行你的形象。 请记住要正确指定端口映射,第一个端口是将在GCE实例中公开的端口,第二个端口是EXPOSE 8000容器内部暴露的EXPOSE 8000 ,例如EXPOSE 8000 。 例如,在下面的例子中,我的应用程序被configuration为在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标志将允许每当实例重新启动时重新启动该容器

我希望这个对你有用。