有没有办法在docker容器中安装任何应用程序,只有当它之前没有安装?
例如;
RUN apt-get install -y nginx
将每次安装nginx一个新的重build。 如何检查nginx是否已经存在? 如果不安装其他只是更新或什么都不做。 这是可能的吗? 我有充分的理由需要另一个容器内的nginx现在得到的东西,以后运行可以移动到分离nginx自己的容器。
默认情况下,Docker将保存每个构build步骤。 所以,无论何时你重新构build你的镜像,如果你在相同的状态下做同样的事情,Docker将检查它的caching并使用caching。
正如@jordanm所说, yum和apt-get也会检查已经安装的应用程序。 所以,如果你做yum install nginx两次,它不会重新安装nginx(只要你不告诉yum或apt-get重新安装nginx)。