用于Mac的Docker documentation进行绑定安装性能调整时,有关delegated
绑定安装的内容如下:
如果主机文件系统上存在对挂载源目录的更改,则当委派挂载与主机源目录同步时,这些更改可能会丢失。
1)这是否意味着如果我在项目源目录上有一个delegated
绑定安装,那么在容器和主机之间的同步过程中,某些时候我未提交的更改会丢失吗?这种情况多久发生一次,并且有任何已知的先决条件发生吗?
2)我是否正确理解,仅当容器本身的更改同步到主机时(而不是相反,当容器中的更改同步到容器时)发生此问题时,才会发生此问题被容器上更改的相同文件覆盖?
答案 0 :(得分:1)
基本上,这意味着如果主机更改了文件,而来宾更改了文件(它在delegated
中异步进行),则来宾更改可能会覆盖主机更改。在cached
中,guest虚拟机将不会异步编写,因此不会发生这种情况。
但是,据我所知,delegated
挂载尚未在Mac的docker中实现,其行为与cached
相同。这是问题所在:https://github.com/docker/for-mac/issues/1592
我不用担心源代码更改会消失。从来宾到主机的同步是异步的,但几乎会立即发生。只要您不尝试编辑应用程序连续写入的文件,就必须很不幸。
如果要确定或不希望应用程序写入该文件夹,请使用cached
。如上所述,还没有区别。