使用gcsfuse挂载时Docker文件已经存在

时间:2018-07-03 05:43:47

标签: docker google-cloud-platform google-cloud-storage google-compute-engine gcsfuse

因此,我使用gcsfuse --implicit-dirs [bucket] [mount-point]命令在我的VM上安装了GCS Bucket。
我与docker使用相同的[mount-point]来保存我的数据。但是,当我使用docker-compose up启动容器时,出现了一个错误,提示mkdir file exists

在卸下铲斗并用gcsfuse --implicit-dirs -o allow_others [bucket] [mount-point]重新安装后,它可以正常工作。但是,我读到使用-o allow_others标志并不安全。

我应该如何在不使用此标志的情况下使其工作?

2 个答案:

答案 0 :(得分:0)

根据this link,需要标志-o allow_others。有几篇示例文章herehere

Here,它们还使用-o allow_others标志。尽管他们未使用GCS存储桶,但使用相同的挂载点时也会出现相同的错误。他们转载了您的问题。挂载时需要传递-o allow_other。否则,安装只能由当前用户使用。 Docker守护程序以root身份而非常规用户身份运行,因此它无法访问文件。如果您的用户具有安装权限,则在安装时不需要Sudo。请参阅this

答案 1 :(得分:0)

我试图做同样的事情,遇到了很多陷阱。我写了一个教程,解释了端到端如何从Docker容器中在GCE上安装GCS存储桶: