Моя установка: Virtualbox с хостом Windows и гостем Ubuntu Server. Ubuntu теперь 21.04, но проблема существовала до обновления с 20.04. А на сервере Ubuntu я запускаю Docker.
Проблема: общие ресурсы из виртуального бокса, которые, как мне кажется, монтируются гостевыми надстройками Vbox, не монтируются до тех пор, пока не запустится Docker. Контейнеры запускаются нормально, так как их конфигурация находится на /home, который является локальным диском, однако у них есть данные на общем ресурсе. Поскольку Docker запускается до монтирования общих ресурсов, контейнеры привязываются к точке монтирования как к каталогу, а не к монтированию, и они могут записывать на диск, заполняя корневую файловую систему невидимыми файлами.
В последнее время я не вносил никаких изменений, кроме как следить за обновлениями Ubuntu, но я чувствую, что, возможно, где-то в прошлом заснул, чтобы обойти это. Я мог бы попытаться сделать это снова, но это кажется довольно неэлегантным, и я подумал, может ли быть лучший способ через systemd или как-то иначе.
Я безуспешно пробовал ряд или директивы systemd. RequiresMountsFor и ConditionPathIsMountPoint были двумя, которые, как я думал, могут работать. Я также пытался сообщить службе докеров, чтобы она запускалась после гостевой службы vbox, но это тоже не сработало.
Какие-либо предложения?