将主机目录绑定到 运行 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 守护进程,然后你的容器就会看到它。