Как это работает, когда общая папка Docker выбрасывает экземпляры. Следует ли рассматривать одновременную модификацию контейнеров с одним файлом?
По сути, у нас должен быть только один поток для записи одного файла. Но в среде докеров должны ли мы позаботиться об одновременной проблеме с общим файлом?
Выходят две проблемы,
- Как Docker поддерживает общие тома. Как выполняется синхронизация файлов между экземплярами.
- Поддерживает ли докер одновременную запись в общий файл.
1 ответ
В идеале вам следует вообще избегать обмена файлами между контейнерами. Это особенно плохо работает в средах с несколькими хостами, таких как Docker Swarm или Kubernetes: нет "синхронизации файлов между экземплярами". Лучше всего общаться между контейнерами с помощью четко определенного сетевого API, чаще всего HTTP.
Если у вас есть несколько контейнеров на одном хосте, которые монтируют один и тот же контент, Docker здесь не предоставляет никакой специальной поддержки. Он действует так же, как если бы у вас было несколько процессов на одном хосте, обращающихся к одному и тому же физическому файлу. Вы несете ответственность за реализацию блокировки файлов и других механизмов синхронизации.