在Docker中,为什么build议在Dockerfile中运行`apt-get`更新?

对不起,服务器的东西很新,但很好奇。 为什么在构build容器时运行apt-get update?

我的猜测是,这是出于安全的目的,如果这种情况下,会回答这个问题。

apt-get update确保所有软件包源和依赖项都是最新版本,它不会更新已安装的现有软件包。 build议您在运行apt-get install之前始终运行apt-get update ,这样apt-get install运行时应该使用最新版本的软件包。

RUN apt-get update -q -y && apt-get install -q -y <your-program>

(-q -y标志只是意味着apt进程将安静地运行而不要求您确认,因为这会导致Docker进程失败)

首先,让我们区分apt-get updateapt-get upgradeupdate是获取最新的包索引。 这样可以在进行apt-get install时不会遇到过时或编辑过的错误。

upgrade实际上是通过一个升级包。 它通常也需要先前的update来具有更新的包索引。 如果已经安装的软件包存在软件包或安全问题,则可以这样做。

您通常会在构build中看到update ,因为基本映像可能具有相当过时的包索引,只是执行apt-get install可能会失败。

upgrade将不太常见。 但是如果你想确保安装最新的软件包,仍然可以完成。