Docker容器到NAS存储

时间:2017-06-19 13:46:52

标签: docker containers storage

我试图将存储卷安装到容器内部。像linux我给出了以下命令

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

这使得"访问被拒绝"错误,我已将Container和主机IP添加到存储,以允许来自Container&主机服务器。但是我无法将存储卷装入容器中?我错过了什么吗?我正在使用Centos操作系统。

编辑注意:我已经成功将存储装载到Docker主机,并在主机文件系统和容器之间进行通信。然而,这个新的测试用例寻求直接在容器上安装存储卷而不是在Docker主机上。

1 个答案:

答案 0 :(得分:3)

您无法从容器内部运行mount命令而不会禁用docker提供的某些隔离(否则不受信任的应用程序可能会挂载主机根文件系统并转义)。 Docker通过从容器内的root用户中删除各种功能来防止这种情况。

对于NFS安装,您通常可以通过以下两种方式之一将其作为卷安装到容器中:

  1. 在主机上挂载NFS目录,并将主机目录映射到容器中。除了容器内部之外,这允许您直接在主机上管理卷。

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

  3. 对于选项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