在Docker容器中挂载NFS共享
有谁知道如何使用centos基本映像在docker容器中安装nfs共享?我已经尝试过以下命令:
mount server:/dir /mount/point
并得到下一个错误:
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified
当我尝试将其与 -o nolock 选项一起使用时,错误是:
mount.nfs: Operation not permitted
回答:
对于使用mount
,您需要具有此CAP_SYS_ADMIN
功能,Docker在创建容器时会丢弃该功能。
有几种解决方案:
- 用
--cap-add sys_admin
标志启动容器。这将导致Docker保留该CAP_SYS_ADMIN
功能,从而使您可以从容器内挂载NFS共享。这可能是一个安全问题;不要在不受信任的容器中执行此操作。[此答案的先前版本建议使用--privileged=true
保留 所有 功能,这要感谢@earcam--cap-add
代替使用]。 在主机上挂载NFS共享,并将其作为主机卷传递到容器中:
you@host > mount server:/dir /path/to/mount/point
you@host > docker run -v /path/to/mount/point:/path/to/mount/point
使用Docker卷插件(如Netshare插件)直接将NFS共享作为容器卷挂载:
you@host > docker run \
–volume-driver=nfs \
-v server/dir:/path/to/mount/point \
centos
以上是 在Docker容器中挂载NFS共享 的全部内容, 来源链接: utcz.com/qa/436281.html