Sat*_*esh 2 storage containers docker
我正在尝试将存储卷安装到容器内部。就像我给了下面的命令的 linux
**mount 10.#.##.###:/nvol1 /tmp**
Run Code Online (Sandbox Code Playgroud)
这给出了“拒绝访问”错误,我已将容器和主机 IP 添加到存储中,以允许来自容器和主机服务器的流量。但是我无法在容器中安装存储卷?我错过了什么吗?我正在使用 Centos 操作系统。
编辑注意:我已经成功将存储挂载到Docker主机上,并在主机文件系统和容器之间进行了通信。然而,这个新的测试用例寻求直接在容器上而不是在 Docker 主机上安装存储卷。
如果不禁用 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
Run Code Online (Sandbox Code Playgroud)
编辑:要跳过该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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9772 次 |
| 最近记录: |