【问题标题】:Docker for Mac, data loss during delegated bind-mounts synchronizationDocker for Mac,委托绑定挂载同步期间的数据丢失
【发布时间】:2018-12-30 00:41:13
【问题描述】:

Docker for Mac documentation 用于绑定挂载性能调优关于delegated 绑定挂载如下:

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

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

2) 我是否正确理解此问题仅发生在容器本身的更改同步到主机时(而不是其他方式,当主机的更改同步到容器时),在此期间主机上的文件发生更改被容器上更改的相同文件覆盖?

【问题讨论】:

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


    【解决方案1】:

    基本上,这意味着如果主机更改了文件而访客更改了文件(它在delegated 中异步执行),那么访客更改可能会覆盖主机更改。在cached 中,guest 不会异步写入,因此不会发生这种情况。

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      相关资源
      最近更新 更多