当您将docker容器卷正在使用的文件夹转换为MV时会发生什么?

时间:2019-05-14 19:38:58

标签: docker docker-run

说我像这样运行一个容器:

mv /host/folder /host/folder2

如果我们运行ignoreElements,我肯定会发生不好的事情,唯一的解决方案是停止容器并重新启动它?

1 个答案:

答案 0 :(得分:1)

Docker使用绑定挂载la mount --bind使卷可用。

绑定安装的行为很像硬链接。如果将foobar硬链接到ln foo bar,则可以重命名或删除foo,并且不会影响bar,因为两个文件都指向同一个索引节点。同样,如果您将foobar绑定到mount --bind foo bar,则移动或删除foo/不会影响bar/

让我们看一下两个测试目录foobar

$ mkdir foo bar
$ touch foo/FOO bar/BAR
$ ls foo/
FOO
$ ls bar/
BAR

如果我们将foo安装在bar之上,然后重命名foo,则bar不受影响:

$ sudo mount --bind foo bar
$ ls bar/
FOO
$ mv foo foo.renamed
$ ls bar/
FOO