使用gcsfuse在docker容器中安装google云存储桶

时间:2016-01-13 03:49:36

标签: docker fuse gcsfuse

我正在尝试从docker容器中安装Google云端桶,并收到以下错误:

[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.

我的凭据在我的主机上运行,​​但不在正在运行的容器上运行。 API表示不使用root进行连接,但您可以使用-o allow_other标志(fuse标志)覆盖它。任何想法都表示赞赏。

这是在centos7基础图像上运行

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

根与不是这里的红鲱鱼;有问题的凭证是GCS凭证。

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

答案 2 :(得分:1)

您真的想避免使用x=c('a', 'b', 'c', 'd', 'e') y=1:length(x) x=factor(x) plot(x, y) 选项运行容器。 我相信您只需要添加SYS_ADMIN功能并访问--privileged设备即可。

/dev/fuse