使用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
,就有点难以诊断。你介意发个链接吗?