在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在创建容器时会丢弃该功能。

有几种解决方案:

  1. --cap-add sys_admin标志启动容器。这将导致Docker保留该CAP_SYS_ADMIN功能,从而使您可以从容器内挂载NFS共享。这可能是一个安全问题;不要在不受信任的容器中执行此操作。[此答案的先前版本建议使用--privileged=true保留 所有 功能,这要感谢@earcam --cap-add代替使用]。
  2. 在主机上挂载NFS共享,并将其作为主机卷传递到容器中:

    you@host > mount server:/dir /path/to/mount/point

    you@host > docker run -v /path/to/mount/point:/path/to/mount/point

  3. 使用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

回到顶部