Прочитав эту документацию, я почувствовал некоторое замешательство относительно того, как лучше всего управлять производительными данными приложений / служб.
Кажется, есть 3 варианта:
- Просто сопоставьте том с каталогом хоста (т.е.
-v
аргументом дляdocker run
) - Создать образ контейнера докера для данных (т.е. отдельный контейнер и
--volumes-from
) - Создание тома докера (т.е.
docker volume create
)
Похоже, что принятая практика - это вариант № 2, но мне интересно, какова цель № 3?
Особенно, как вы правильно обрабатываете эти сценарии, docker volume
и лучше ли использовать контейнер объема данных или это для каждой ситуации?
- Вам нужны данные приложения на отдельном уровне тома и / или хранилища на вашем сервере
- Резервное копирование
- Восстановление данных
btrfs scrub
его, чтобы найти и исправить поврежденные файлы. Я не уверен, как работает dockerized, но я полагаю, что он не защищает от гниения данных, поэтому мне всегда нужно полное восстановление, если происходит что-то плохое, а не просто восстановление отдельных файлов. Еще одна мысль, что он добавляет еще один уровень абстракции, поэтому он еще больше замедляет чтение и запись файлов. Я почему-то не вижу преимуществ # 2 и # 3, но у меня нет опыта работы с докером, так что это может измениться.