在docker容器内安装应用程序,仅当它之前尚未安装过?

在docker容器内安装应用程序,仅当它之前尚未安装过?

有没有办法在docker容器内安装任何应用程序,前提是它之前没有安装过?

例如;

RUN apt-get install -y nginx

每次重建时都会安装 nginx。如何检查 nginx 是否已存在?如果没有安装,则只需更新或不执行任何操作。这有可能吗?我现在有充分的理由需要将 nginx 放在另一个容器中,以便稍后启动并运行,然后可以将 nginx 分离到自己的容器中。

答案1

默认情况下,Docker 会保存您的每个构建步骤。因此,每当您重新构建镜像时,Docker 都会检查其缓存,如果您在相同状态下执行相同操作,则将使用缓存。

正如 @jordanm 所说,yum并且apt-get还会检查应用程序是否已安装。因此,如果您执行yum install nginx两次,它不会重新安装 nginx(只要您不告诉yumapt-get重新安装 nginx)。

相关内容