Docker 如何在GCP中容器os映像的启动脚本中使用gsutil?
我正在使用Docker 如何在GCP中容器os映像的启动脚本中使用gsutil?,docker,google-cloud-platform,google-compute-engine,Docker,Google Cloud Platform,Google Compute Engine,我正在使用gcloud beta compute instances create with container和以下启动脚本创建我的GCE实例: #! /bin/bash gsutil cp gs://artifacts.<PROJECT-ID>.appspot.com/some-file . docker-credential-gcr configure-docker docker pull gcr.io/<PROJECT-ID>/image:tag docker r
gcloud beta compute instances create with container
和以下启动脚本创建我的GCE实例:
#! /bin/bash
gsutil cp gs://artifacts.<PROJECT-ID>.appspot.com/some-file .
docker-credential-gcr configure-docker
docker pull gcr.io/<PROJECT-ID>/image:tag
docker run --name compose --rm -v $PWD:$PWD -w $PWD -v /var/run/docker.sock:/var/run/docker.sock docker/compose:1.26.0 up -d --force-recreate
我也尝试在启动脚本中安装gsutil,但它失败了,因为/root存在相同的问题。实际上可以在COS映像上执行此操作吗?正如文档[1]所示,gsutil工具似乎可以在Linux/Unix、MAC OS和windows上运行。所以看起来COS映像不支持gsutil。我也希望链接[2]和[3]能有所帮助 请准备文档[4],因为COS图像有一些限制 [1] [2] [3]
[4] 有一种方法可以在容器优化操作系统中使用gsutil和gcloud等工具。您可以访问工具箱以使用gsutil访问存储桶,然后将下载的数据从工具箱目录复制到实际的VM 一旦启动工具箱,您就可以在工具箱和虚拟机之间交换文件,可以使用
/var/lib/toolbox/USER gcr.io\u google-containers\u toolbox-20200404-00/
在虚拟机中从工具箱获取数据,也可以使用/media/root/
在工具箱中从虚拟机获取文件
更多信息
嗯。。。containerOS是Linux。经过容器优化的操作系统对您在其他操作系统上可能熟悉的一些常见功能的支持有限或不支持[1]。[1] 是的,我知道ContainerOS是什么,我知道它的局限性。不过,这个问题的目的是看看我尝试做的事情在使用gsutil命令方面是否可行。你是说不是吗?嗨,抱歉搞混了。由于错误消息:未找到第2行:gsutil:命令,请尝试将gsutil作为文档[1]安装?另一方面,请提供我的步骤,你是与相关的文件如下,我会尝试在我的项目复制。谢谢。[1] 最后,我决定转移到一个单节点分区GCP Kubernetes集群,它解决了上述所有问题,谢谢您的帮助!
Jun 23 15:22:08 app startup-script[389]: INFO Found startup-script in metadata.
Jun 23 15:22:08 app startup-script[389]: INFO startup-script: /var/lib/google/startup-DqGmUt/tmpPyYsVd: line 2: gsutil: command not found
Jun 23 15:22:09 app startup-script[389]: INFO startup-script: ERROR: Unable to save docker config: mkdir /root/.docker: read-only file system