我试图将存储卷安装到容器内部。像linux我给出了以下命令
**mount 10.#.##.###:/nvol1 /tmp**
这使得"访问被拒绝"错误,我已将Container和主机IP添加到存储,以允许来自Container&主机服务器。但是我无法将存储卷装入容器中?我错过了什么吗?我正在使用Centos操作系统。
编辑注意:我已经成功将存储装载到Docker主机,并在主机文件系统和容器之间进行通信。然而,这个新的测试用例寻求直接在容器上安装存储卷而不是在Docker主机上。
答案 0 :(得分:3)
您无法从容器内部运行mount命令而不会禁用docker提供的某些隔离(否则不受信任的应用程序可能会挂载主机根文件系统并转义)。 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