Docker для Mac, потеря данных при синхронизации делегированных привязок - PullRequest
0 голосов
/ 30 декабря 2018

Docker для Mac документация для настройки производительности bind-mounts говорит следующее относительно delegated bind mounts:

Если на хосте присутствуют изменения в каталоге источника монтированияфайловой системе, эти изменения могут быть потеряны, когда делегированное монтирование синхронизируется с исходным каталогом хоста.

1) Означает ли это, что если у меня есть delegated bind-mount для моего исходного каталога проекта,тогда в какой-то момент мои незафиксированные изменения могут быть потеряны во время синхронизации между контейнером и хостом?Как часто это происходит и существуют ли какие-либо известные предпосылки для этого?

2) Правильно ли я понимаю, что эта проблема возникает только в случае, когда изменения из самого контейнера синхронизируются с хостом (а не с другим)Кстати, когда изменения с хоста синхронизируются с контейнером) во время которого файл, измененный на хосте, перезаписывается тем же файлом, измененным на контейнере?

1 Ответ

0 голосов
/ 18 января 2019

В основном это означает, что если хост изменил файл, а гость изменил файл (что он делает асинхронно в delegated), то изменение гостя может перезаписать изменение хоста.В cached гость не будет писать асинхронно, чтобы ситуация не возникала.

Однако, насколько я знаю, delegated монтирование еще не реализовано в Docker для Mac и ведет себя так же, какcached.Вот проблема: https://github.com/docker/for-mac/issues/1592

Я бы не стал беспокоиться об исчезновении изменений исходного кода.Синхронизация от гостя к хосту асинхронна, но произойдет почти сразу.До тех пор, пока вы не пытаетесь редактировать файл, в который приложение пишет постоянно, вам может быть очень не повезло.

Если вы хотите быть уверены или не ожидаете, что ваше приложение запишет в негоиспользование папки cached.Как упоминалось выше, разницы пока нет.

...