Docker запускается до монтирования общих ресурсов Virtualbox

Моя установка: Virtualbox с хостом Windows и гостевым сервером Ubuntu. Ubuntu теперь 21.04, но проблема существовала до обновления с 20.04. А на сервере Ubuntu я запускаю Docker.

Проблема: общие ресурсы виртуального бокса, которые, как мне кажется, монтируются гостевыми аддонами Vbox, монтируются только после запуска Docker. Контейнеры запускаются нормально, поскольку их конфигурация находится в / home, который является локальным диском, однако у них есть данные на общем ресурсе. Поскольку Docker запускается до монтирования общих ресурсов, контейнеры привязываются к точке монтирования как к каталогу, а не к монтированию, и они могут записывать на диск, заполняя корневую файловую систему невидимыми файлами.

В последнее время я не вносил никаких изменений, кроме того, что следил за обновлениями Ubuntu, но мне кажется, что я мог где-то в прошлом уснуть, чтобы обойти это. Я мог бы попробовать сделать это снова, но это кажется довольно неэлегантным, и я подумал, может ли быть лучший способ через systemd или иначе.

Я безуспешно пробовал использовать директивы number или systemd. RequiresMountsFor и ConditionPathIsMountPoint - вот два, которые, как я думал, могут сработать. Я также попытался указать службе докеров, чтобы она запускалась после гостевой службы vbox, но это тоже не сработало.

Есть предложения?

0
задан 17 June 2021 в 21:15

1 ответ

Решением было переопределить служебный файл systemd для containerd.

run

    systemctl edit containerd

добавьте следующее в место, указанное в комментариях.

    [Unit]
    After=
    After=network.target local-fs.target vboxadd-service.service
    Requires=vboxadd-service.service

Первый After = очищает эту директиву и готов к новой. Требуются и After, и Requires. Сохраните этот файл и перезапустите хост.

Работает без проблем и подтверждается "systemd-analysis plot", которая является очень полезной командой для проверки вашего порядка выполнения systemd. Этот метод переживет обновления программного обеспечения

1
ответ дан 28 July 2021 в 11:27

Другие вопросы по тегам:

Похожие вопросы: