将主机目录绑定到 运行 docker 容器的卷中
Bind-mount a host directory into a volume of a running docker container
假设我启动了一个 docker 容器,其中包含一个绑定安装的本地文件夹:
docker run --rm -v /ux1/dmtest:/data -it ubuntu
然后,在本地 - 不在容器内,我将另一个 fs 中的目录绑定挂载到 /ux1/dmtest
:
mkdir /ux1/dmtest/bm
mount --bind /ux0/bm /ux1/dmtest/bm
现在,我从容器中看到 /data/bm/
并且可以向其中写入内容,但此内容在 /ux0/bm
上的主机上不可见。
此内容存储在哪里?
有什么方法可以将额外的存储装入 运行 docker 容器(这个解决方法显然不起作用)?
由于 Docker 使用的挂载命名空间,容器不会看到事后完成的挂载。这些文件将位于您第二次绑定安装之前的 /ux1/dmtest 目录中。
如果你想使用绑定挂载,把它放在适当的位置,然后启动 docker 守护进程,然后你的容器就会看到它。
假设我启动了一个 docker 容器,其中包含一个绑定安装的本地文件夹:
docker run --rm -v /ux1/dmtest:/data -it ubuntu
然后,在本地 - 不在容器内,我将另一个 fs 中的目录绑定挂载到 /ux1/dmtest
:
mkdir /ux1/dmtest/bm
mount --bind /ux0/bm /ux1/dmtest/bm
现在,我从容器中看到 /data/bm/
并且可以向其中写入内容,但此内容在 /ux0/bm
上的主机上不可见。
此内容存储在哪里? 有什么方法可以将额外的存储装入 运行 docker 容器(这个解决方法显然不起作用)?
由于 Docker 使用的挂载命名空间,容器不会看到事后完成的挂载。这些文件将位于您第二次绑定安装之前的 /ux1/dmtest 目录中。
如果你想使用绑定挂载,把它放在适当的位置,然后启动 docker 守护进程,然后你的容器就会看到它。