我想在docker容器中使用一些由内核提供的功能,例如fuse(sshfs)。我可以使用特权模式轻松地将模块加载到 Docker 容器中。但是,如果我想在容器启动时加载该模块并且不让它加载其他模块,可以吗?
答案1
您确定问题实际上是在加载模块吗?如果我这样做:
% docker run -it ssh-test bash
root@090961bb6f3a:/project# sshfs xxxx@xxxx:/xxxx/xxxx /mnt
我明白了
fuse: device not found, try 'modprobe fuse' first
原因是 Docker 容器的功能受到限制。解决这个问题的方法是运行容器
% docker run -it --cap-add SYS_ADMIN --device /dev/fuse ssh-test bash
这让我可以使用 sshfs 来挂载卷。