Здравствуйте!
В приницпе я разобрался как использовать "data volumes" и для чего они нужны, но я не понимаю зачем за место создания data volumes контейнера, не использовать параметр
-v some_dir:some_dir
.
Примеры для Postgres (docker-compose)
1. data volumes:
postgres:
image: postgres:9.5
volumes_from:
- postgres-data
postgres-data:
image: busybox
volumes:
- /var/lib/postgresql/data
2. volumes:
postgres:
image: postgres:9.5
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
Какие я вижу
плюсы 2го подхода:
1. Чтобы сделать копию не надо моричиться с создание еще одного контенера и запуска в нем команды. Копия всегда перед глазами. Тоже самое и с восстановлением данных в контейнер.
2. Меньше созданных контенеров.
3. Меньше букв в docker-compose.
4. Я могу ошибаться, но у меня был случай, когда как я понял ненужные data volumes забили мне много места на диске (наверно я просто чтото деал не так).
Какие я вижу
минусы 2го подхода:
1. Наверняка эта папка будет лежать в вашем рабочем окружении, и вы ненароком можете с ней чтото сделать. Т.е. нету изолированности.
Что еще я не учитываю, и что выбрать?
Спасибо!