2017-06-19 55 views
1

我试图将存储卷安装到容器内部。比如linux我给下面的命令码头集装箱到NAS存储

**mount 10.#.##.###:/nvol1 /tmp** 

这给了“拒绝访问”错误,我已经添加了集装箱和主机IP存储,允许从容器&主机服务器的流量。但我无法在容器中安装存储卷?我错过了什么吗?我正在使用Centos操作系统。

编辑注:我已经成功安装存储到主机泊坞窗和取得的主机文件系统和容器之间的通信。然而,这个新的测试案例寻求直接将容器上的存储卷安装在不在Docker主机上。

回答

1

您将无法从容器内不解除一些泊坞窗提供了隔离(否则不受信任的应用程序可以安装在主机根文件系统和逃逸)的运行mount命令。 Docker通过从容器内的根用户删除各种功能来防止这种情况发生。

对于NFS挂载,您通常会安装这个作为卷放入容器中的两种方法之一:

  1. 安装在主机上的NFS目录,主机目录映射到容器中。这允许您除了在容器内外直接在主机上管理卷。

  2. 将NFS目录作为卷直接挂载到容器中。

对于第二种情况,可以定义体积的东西,如:

$ 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 
+0

在Docker文件中添加给定格式后,它会在构建bash-4.2#docker build时引发错误。 发送建立上下文多克尔守护39.42 KB 步骤1:泊坞 未知指令:泊坞 的bash-4.2#更Dockerfile 搬运工卷创建--driver本地\ --opt类型= NFS \ --opt O = 。ADDR = 10#### ###:。/ xbbl7nvol1,RW \ --opt设备=:/ TMP \ nvol1 – Satte

+0

那些是外壳命令,而不是用于Dockerfile条目。在构建时你将无法做到这一点。请更新您的问题,确切地说您正在尝试做什么,您正在运行的命令以及您正在使用的文件。 – BMitch

+0

我已更新问题。 – Satte