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
,所以我重新启动了这个过程并以这种方式工作:
- 安装docker软件包:
sudo apt-get install docker.io
- testingdocker工作是否正常
sudo gcloud docker ps
- 从图像存储库中提取图像,例如gcr.io。 如果没有特定的标签使用最新的 。
sudo gcloud docker -- pull gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest
- 运行你的形象。 请记住要正确指定端口映射,第一个端口是将在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
标志将允许每当实例重新启动时重新启动该容器
我希望这个对你有用。