Я хотел бы контролировать, работает ли докер в постоянном хранилище или в постоянном хранилище, наложенном на летучее.Docker: можно ли использовать наложенную файловую систему заднего плана?
Это потому, что у меня есть файловая система на SD-карте (Raspberry Pi), и она длится долго. В основном я хочу работать с файловой системой только для чтения (ext4), наложенной на tmpfs (запускать на ней контейнеры), но когда я обнаруживаю, что обновление доступно, я хочу отключить overlayfs, переключить файловую систему как чтение-запись, обновление изображения, затем переключите все обратно на файловую систему, доступную только для чтения tmpfs.
# mv /var/lib/docker /var/lib/docker~
# mkdir -p /var/lib/docker /tmp/docker /tmp/work
# mount -t overlay -o lowerdir=/var/lib/docker~,upperdir=/tmp/docker,workdir=/tmp/work overlay /var/lib/docker
# docker daemon --storage-driver devicemapper
Я попробовал два драйвера хранения: overlay2 и devicemapper (цикл). Первый отказался работать над файловой системой overlayfs (в документации также упоминается, что она не поддерживается), последний потребляет всю мою память, а затем Docker убивается ОС. Поведение такое же для малины Pi и моего ПК.
Единственное хранилище, которое должно работать, это vfs, но из того, что я прочитал, он очень неэффективен для хранения (без копирования на запись), поэтому для меня это бесполезно.
Теперь я пытаюсь сделать это с помощью драйвера хранения aufs и файловой системы backayfs (документация Docker не указывает, что она отключена). Я надеюсь, что это сработает, но у него есть некоторые недостатки: aufs не поддерживается ядром mainline Linux.
Есть ли другой способ переключения между двумя файловыми системами? Или можно сохранить сохранение SD-карты по-разному (например, запустить контейнеры в памяти)?