Как убедиться, что служба Docker запустится после обновления containerd?

Как убедиться, что служба Docker запустится после обновления containerd?

Сегодня утром я проснулся и получил письмо от watchdog о том, что служба не работает. После подключения к серверу я обнаружил, что dockerслужба не работает. После небольшого расследования я обнаружил, что сегодня утром Ubuntu выполнила автоматическое обновление службы containerd, и после обновления dockerслужба не была запущена автоматически.

Как я могу быть уверен, что после обновления это не повторится?

решение1

У нас была та же проблема. Я решил использовать файл юнита systemd, чтобы создать слабую зависимость между containerd и dockerd.

Вот как:

Как root:

Создайте каталог переопределения (разрешение 755)

mkdir /etc/systemd/system/containerd.service.d/

Создайте файл переопределения в указанном выше каталоге (права доступа 644)

vi override.conf

Добавьте в файл следующее

[Unit]
Before=docker.service
Wants=docker.service

Перезапустить демон systemd

systemctl daemon-reload

Проверьте, работает ли это

Остановить контейнерd

systemctl stop containerd

Проверьте, остановлен ли dockerd

systemctl status docker

Запустить контейнерd

systemctl start containerd

Проверьте, запущен ли dockerd

systemctl status docker

++++++++++++++++++++++++++

Некоторые ссылки на другую документацию по теме

https://www.shellhacks.com/systemd-service-file-example/

https://man7.org/linux/man-pages/man5/systemd.service.5.html

решение2

Я установил режим ожидания для Docker и связанных с ним пакетов, чтобы они обновлялись только при плановых обновлениях.

sudo apt-mark hold docker containerd

Когда я хочу обновить Docker, я запускаю apt-mark unhold, обновляю пакеты и снова их удерживаю. У меня есть Ansible playbook для автоматизации этого процесса. Мой playbook для установки и настройки Docker устанавливает пакеты для удержания сразу после установки.

решение3

Theдокументацияпри использовании политик перезапуска Docker полезно запускать контейнеры с параметрами alwaysили unless-stoppedв зависимости от ваших целей.

Также представляется разумным запретить Ubuntu выполнять автоматические обновления.

Связанный контент