我正在尝试使用s3fs设置一个Docker Ubuntu映像,该映像具有作为本地文件系统安装的AWS s3存储桶。有几个指南,大部分与此类似,其中说安装各种apt包,设置一个~/.passwd-s3fs
文件,然后运行s3fs
。然而,在Ubuntu的最新版本中(我尝试过16.04、18.04和最新版本(,它说我应该安装linux-headers-4.9.184-linuxkit
包——然而,这似乎在任何地方都不可用。我被卡住了。
我在本地Mac上运行得很好,但在Ubuntu映像上无法运行。
$ apt-get update
$ apt-get install -y awscli
$ apt-get install -y automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev libssl- dev libxml2-dev make pkg-config kmod
$ apt-get install -y s3fs
$ echo key:secretkey > ~/.passwd-s3fs && chmod 0600 ~/.passwd-s3fs
$ mkdir /s3mountpoint
$ s3fs mybucketname /s3mountpoint
fuse: device not found, try 'modprobe fuse' first
$ modprobe fuse
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.184-linuxkit/modules.dep.bin'
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.9.184-linuxkit
我也尝试过克隆&手动编译https://github.com/s3fs-fuse/s3fs-fuse.git
,但这给了我同样的错误。
为了在Ubuntu上成功运行s3fs
,我如何运行fuse
ok,或者找到相关的遗留kernel-headers
包?
如果有人遇到这里描述的相同问题并进入本文,我可以通过运行带有--privileged
标志的docker来解决这个问题。