使用 gcsfuse 在 docker 容器中挂载谷歌云存储桶

Mar*_*all 6 fuse docker gcsfuse

我正在尝试从 docker 容器中挂载一个谷歌云存储桶并收到以下错误:

[root@cdbdc9ccee5b workdir]# gcsfuse -o allow_other  --debug_gcs --key-file=/src/gcloud_service_account.json my-bucket-name /gcloud
Using mount point: /gcloud
Opening GCS connection...
Opening bucket...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn:     setUpBucket: OpenBucket: Bad credentials for bucket "my-bucket". Check the bucket name and your credentials.
Run Code Online (Sandbox Code Playgroud)

我的凭据适用于我的主机,但不适用于正在运行的容器。API 说不要使用 root 连接,但您可以使用 -o allow_other 标志(保险丝标志)覆盖它。任何想法表示赞赏。

这是在 centos7 基础映像上运行的

jac*_*bsa 5

根与非根在这里是一个转移注意力的话题。所涉及的凭证是 GCS 凭证。

有关将 GCS 凭证传递给 gcsfuse 的文档,请参阅此处。最简单的方法是使用您最初配置 GCE VM 的凭据(假设您在 GCE 上运行),这使得 gcsfuse 通常无需任何进一步的努力即可运行。但如果这不起作用,您可以使用该标志--key-file为 gcsfuse 提供从 Google Developers Console 下载的 JSON 密钥文件的路径。


Mar*_*all 5

更新:我能够安装 gcsfuse。我必须使用该--priviledged选项运行 docker。(感谢#thaJeztah 提供的面包屑!)