我正在尝试将存储卷挂载到容器内部。就像Linux一样,我给出了以下命令:
**mount 10.#.##.###:/nvol1 /tmp**
这会导致“访问被拒绝”的错误,我已将容器和主机IP添加到存储中,以允许来自容器和主机服务器的流量。但是我无法在容器中挂载存储卷?我是否漏掉了什么?我正在使用Centos操作系统。
编辑备注:我已成功将存储挂载到Docker主机上,并使主机文件系统与容器之间通信。然而,这个新的测试案例寻求直接在容器上挂载存储卷而不是在Docker主机上。
我正在尝试将存储卷挂载到容器内部。就像Linux一样,我给出了以下命令:
**mount 10.#.##.###:/nvol1 /tmp**
如果不禁用Docker提供的隔离功能(否则未经信任的应用程序可能会挂载主机根文件系统并逃脱),则无法在容器内运行mount命令。 Docker通过从容器内的root用户中删除各种权限来防止此类情况发生。
对于NFS挂载,通常有两种方法之一将其作为卷装入容器中:
在主机上挂载NFS目录,并将主机目录映射到容器中。这样您就可以直接在主机上管理卷并在容器内进行管理。
将NFS目录直接作为卷直接装入容器中。
对于选项2,您可以使用以下内容定义卷:
$ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=10.1.23.123,rw \
--opt device=:/nvol1 \
nvol1
$ docker run -v nvol1:/tmp your_image
编辑:如果要跳过docker volume create
步骤,您可以使用--mount
选项从运行命令中执行此操作:
$ docker run -it --rm \
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path \
foo
--opt type=nfs
--opt o=addr=10.#.###.###:/xbbl7nvol1,rw
--opt device=:/tmp
nvol1 - Nilan