Как организовать папку /var/lib/docker/ с данным docker чтобы каждый контейнер был отдельным каталогом?
Пытаюсь разобратся и организовать работу своих задач с использованеим docker.
Все хорошо, однако сырой способ хранения несколько напрягает.
Все данные хранятся в папке /var/lib/docker/ , при чем визуально очень сложно понять какие файлы принадлежат какому контейнеру.
Есть ли какой-то механизм организации этой папки, чтобы информация о каждом контейнере хранилась в отдельной папке или еще лучше img образе , как снэпшоты виртуальной машины.
Например мне нужно будет на одном хосте разнести контейнеры физически по разным дискам . Как это сделать сейчас не представляю.
Легко, монтируйте нужный путь с хоста в контейнер по нужному пути, не трогайте /var/lib/docker.
У вас же в контейнере основной объем не сам образ контейнера занимает, а какие-то данные, например, файлы БД, вот и подключите в /var/lib/mysql контейнера нужный путь с хоста.
Интересно, а какую реакцию вы ждете, если ответ не в тему. О том , что к контейнеру можно цепануть локальную папку это понятно. Вопрос был об организации ИМЕННО папки /var/lib/docker, чтобы разложить в подкаталоги из этой папки отдельно, для каждого контейнера, а не все одной кучей.
Например не так , как сейчас:
/var/lib/docker/xxx111
/var/lib/docker/xxx222
/var/lib/docker/yyy111
/var/lib/docker/xxx111
....
/var/lib/docker/zzz111
а так:
/var/lib/docker/xxx/111..333
/var/lib/docker/yyy/111..333
...
/var/lib/docker/zzz/111
где xxx yyy zzz - хэши контейнеров, 111,222,333 - дифы aufs для каждого контейнера.
Ajex: Хоть такой как сейчас. У каждой технологии есть свои особенности. Особенности Docker в том, что вам никогда не нужно работать на том уровне, на котором вы спрашиваете. В указанных вами папках используются щаблонные образы, которые практически не имеют никакого оверхеда по занятому пространству. Для хранения данных вы создаете data-only контейнер, объявляете тома и подключаете их к шаблонным контейнерам. Это то, как оно задумано, для чего в последних версиях появились драйвера для файловых систем (можно создавать тома, которые физически размещаются сразу на нескольких серверах). Можете посмотреть как эта концепция применена у меня к веб-серверу: https://github.com/nazar-pc/docker-webserver
Данные отдельно - храните где хотите, шаблонные контейнеры отдельно и могут обновляться когда нужно.
Назар Мокринский: Спасибо, почитаю. Просто совершенно не понимаю причины, почему каким-то образом нельзя организовать папки таким образом, как я хочу, потому и предполагаю, что подобная опция должна быть в докере. А то что мне нужно/не нужно, дак пути неисповедимы. :) Да и не всегда дело именно в дисковом пространстве. Может кто-то любит банальный порядок , а наличие хреновой тучи папок с хэшевыми названиями в одной папке просто раздражает. Этот как вариант.
Ajex: На самом деле там могут быть не совсем папки, например, с btrfs там будут суб-тома, в других случаях может быть overlayfs. То есть это глубоко интегрировано в драйвера в зависимости от низлежащей файловой системы. Короче, всё не так просто, и всё можно сделать не закапываясь в те дебри.
Ajex: Даже без btrfs там всё немного сложнее чем просто папочки хотя бы потому, что иначе место раздувалось линейно при запуске контейнеров, а оно практически не раздувается.