Краткий вопрос: Docker, Ubuntu 16.04, автоматическое обновление безопасности и перезагрузка. Тогда как я могу обеспечить новейшие linux-изображение-extra-`uname -r` был установлен до того, как Docker попытается запустить контейнеры после автоматического обновления и перезагрузки безопасности?
Подробный вопрос: (все ниже)
Я использую Docker и Docker-Compose для развертывания своего веб-приложения. Я настроил контейнеры Docker для автоматического запуска при перезагрузке. И я настроил автоматические обновления безопасности, включая автоматические перезапуски.
Это означает, что время от времени автоматически устанавливается новое ядро и перезагружается сервер. После этого Docker не запустится, потому что:
предыдущий драйвер хранилища "aufs" не удалось: драйвер не поддерживается
(говорит service docker start
). Чтобы решить эту проблему, необходимо:
sudo apt-get install linux-image-extra-`uname -r`
Итак, я добавил это в crontab:
root@edgoew1dal16gandi:~# crontab -l
...
@reboot apt-get install linux-image-extra-`uname -r` 2>&1 >> /tmp/cron-edm.log
Но это не удается, потому что: (я вижу в файле /tmp/cron-edm.log)
Err:1 http://security.ubuntu.com/ubuntu xenial-security/main
amd64 linux-image-extra-4.4.0-24-generic amd64 4.4.0-24.43
Temporary failure resolving 'europe-west1.gce.archive.ubuntu.com'
Однако, если я запустил команду вручную после перезагрузки то работает. По-видимому, apt-get
не работает, потому что запускается слишком рано после перезагрузки?
Поэтому мне интересно, как я могу это сделать:
apt-get install linux-image-extra-`uname -r`
автоматически, после каждой перезагрузки сервера, и перед Docker запускается без сбоя из-за вышеуказанного «Временный сбой ...» ошибка?
Вам необходимо установить виртуальный пакет для текущего ядра. linux-image-extra-.*
тогда должна быть зависимость.
Поэтому, когда вы установили общее ядро, у вас должен быть linux-image-generic
пакет установлен. Это зависит от тока linux-image-extra-.*
как вы видете Вот.
Кстати, это не обычная проблема. Обычно это должно работать.