在读取或写入docker中的挂载目录时,gcsfuse会给出input/输出错误

我在docker容器(基本图像centos7)内使用gcsfuse,不能读取或写入挂载的目录。

我使用gcsfuse像这样挂载目录:

[root@6c24c3a6cc28 /]# gcsfuse --foreground --key-file=/src/gcloud_service_account.json my-bucket /gcloud/ Using mount point: /gcloud Opening GCS connection... Opening bucket... Mounting file system... File system has been successfully mounted. 

当我尝试读取或写入挂载的目录,我得到这个错误:
[root @ 6c24c3a6cc28 /]#ls -la / gcloud / ls:读取目录/ gcloud /:input/输出错误总数0

gcsfuse输出debugging信息:

保险丝:2016/01/14 01:33:41.110260 * fuseops.ReadDirOp错误:readAllEntries:ReadEntries:ListObjects:获取https://www.googleapis.com/storage/v1/b/my-bucket/o ? 定界符=%2F&投影=完整:私钥应该是PEM或普通PKSC1或PKCS8; parsing错误:asn1:结构错误:标签不匹配(16 vs {class:1 tag:27 length:123 isCompound:true}){可选:false显式:false应用:false defaultValue:标签:stringType:0 timeType: 0设置:false omitEmpty:false} pkcs1PrivateKey @ 2

我正在运行这样的docker:docker运行-p 3000:3000 \
–privileged \ –cap-add SYS_ADMIN \ –device / dev / fuse \ –name gcsfuseTest \ gcsfuseImage

我不是100%确定–cap-add SYS_ADMIN和–device / dev / fuse让我。 我把它们放在docker上使用保险丝的其他用户的基础上。

我可以通过打开一些debugging标志来解决这个问题,像这样运行gcsfuse:

gcsfuse --foreground --debug_gcs --debug_http --debug_fuse --debug_invariants --key-file=/src/gcloud_service_account.json dev-my-bucket /gcloud

这返回了很多信息,以及:

“code”:403,“message”:“Access Not Configured。您的项目没有启用API(Cloud Storage JSON API),请使用Google Developers Console更新您的configuration。

我在Google Devlopers控制台中启用了这个API,几分钟后,vuala就起作用了。