简单的问题:Docker,Ubuntu 16.04,自动安全升级和重启。 那么我怎样才能确保在自动安全升级和重新启动后,Docker尝试启动容器之前,已经安装了最新的linux-image-extra-`uname -r` ?
详细的问题:(下面的一切)
我正在使用Docker和Docker-Compose来部署我的Web应用程序。 我已经configuration了Docker容器在重启时自动启动。 而且,我configuration了自动安全升级,包括自动重新启动。
这意味着不时地,一个新的内核被自动安装,服务器重新启动。 在此之后,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-.*
,你可以在这里看到。
顺便说一句,这不是一个正常的问题。 它通常应该只是工作。