Docker for Mac,委托绑定安装同步期间数据丢失

时间:2018-12-30 00:41:13

标签: performance docker synchronization docker-volume data-loss

用于Mac的Docker documentation进行绑定安装性能调整时,有关delegated绑定安装的内容如下:

  

如果主机文件系统上存在对挂载源目录的更改,则当委派挂载与主机源目录同步时,这些更改可能会丢失。

1)这是否意味着如果我在项目源目录上有一个delegated绑定安装,那么在容器和主机之间的同步过程中,某些时候我未提交的更改会丢失吗?这种情况多久发生一次,并且有任何已知的先决条件发生吗?

2)我是否正确理解,仅当容器本身的更改同步到主机时(而不是相反,当容器中的更改同步到容器时)发生此问题时,才会发生此问题被容器上更改的相同文件覆盖?

1 个答案:

答案 0 :(得分:1)

基本上,这意味着如果主机更改了文件,而来宾更改了文件(它在delegated中异步进行),则来宾更改可能会覆盖主机更改。在cached中,guest虚拟机将不会异步编写,因此不会发生这种情况。

但是,据我所知,delegated挂载尚未在Mac的docker中实现,其行为与cached相同。这是问题所在:https://github.com/docker/for-mac/issues/1592

我不用担心源代码更改会消失。从来宾到主机的同步是异步的,但几乎会立即发生。只要您不尝试编辑应用程序连续写入的文件,就必须很不幸。

如果要确定或不希望应用程序写入该文件夹,请使用cached。如上所述,还没有区别。