Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gcsfuse装载时,Docker文件已存在_Docker_Google Cloud Platform_Google Cloud Storage_Google Compute Engine_Gcsfuse - Fatal编程技术网

使用gcsfuse装载时,Docker文件已存在

使用gcsfuse装载时,Docker文件已存在,docker,google-cloud-platform,google-cloud-storage,google-compute-engine,gcsfuse,Docker,Google Cloud Platform,Google Cloud Storage,Google Compute Engine,Gcsfuse,因此,我使用gcsfuse--implicit dirs[Bucket][mount point]命令在我的虚拟机上安装了一个GCS存储桶。 我使用与docker相同的[mount point]来持久化我的数据。然而,当我用docker compose up启动容器时,我得到一个错误,说mkdir文件存在 在卸下存储桶并使用gcsfuse——隐式dirs-o allow_others[bucket][mount point]再次装载它之后,我让它开始工作。但是,我读到使用-o allow_oth

因此,我使用
gcsfuse--implicit dirs[Bucket][mount point]
命令在我的虚拟机上安装了一个GCS存储桶。
我使用与docker相同的
[mount point]
来持久化我的数据。然而,当我用
docker compose up启动容器时,我得到一个错误,说
mkdir文件存在

在卸下存储桶并使用
gcsfuse——隐式dirs-o allow_others[bucket][mount point]
再次装载它之后,我让它开始工作。但是,我读到使用
-o allow_others
标志是不安全的

如果不使用此标志,我该如何使其工作?

根据,需要使用-o allow\u others标志。这里有几个例子和文章


,它们还使用-o allow_others标志。使用相同的装载点时会出现相同的错误,尽管他们没有使用GCS存储桶。他们复制了你的问题。您需要在安装时传递-o allow_other。否则,装载只能由当前用户使用。Docker守护进程以root用户身份运行,而不是以普通用户身份运行,因此它无法访问文件。如果用户具有装载权限,则装载时不需要Sudo。请看

我试着做同样的事情,却遇到了大量的哥特卡。我编写了一个教程,解释了如何从Docker容器中端到端地将GCS bucket装载到GCE上:


我无法在容器内进行mkdir或触摸,即使我包含了
allow\u other
标志。感谢您的回复。你能告诉我你用了哪些文件吗?另外,为了重现这个问题,您可以让我了解有关您的容器图像的更多详细信息。我尝试了所有链接,但没有一个有帮助。我有两个docker容器,其中一个带有一个简单的nginx,它将流量反向代理到一个php fpm 7.2.2映像,该映像本质上是一个Laravel应用程序。如果不查看
Dockerfile
,就有点难以诊断。你介意发个链接吗?