Docker для Mac, потеря данных при синхронизации делегированных привязок

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам