如何在dockerfile中执行–rm和–restart?

当你运行docker运行时,你可以select添加–rm和–restart。 但是,如何在dockerfile中获得相同的效果?

Dockerfile用于指定构build映像的指令。

构build映像后,可以使用docker run命令从该映像启动容器。 --rm--restart--rm --restart的选项,这意味着这些命令适用于一个容器。 使用--restart标志可以指定一个容器的重启策略。 --rm标志用于在容器退出时删除容器上的文件系统。

我希望你能看到为什么这两个标志提供的function不属于Dockerfile。 如果没有,你应该更多地了解Docker(特别是图像vs容器)。

加成:

--rm删除文件系统并清理容器。 restart只用于重新启动一个容器,并且重新启动之间文件系统消失将是非常不愉快的。 另外请注意,删除文件系统后的重新启动更像是“重新启动”而不是“重新启动”。 所以基本上他们是互相排斥的。 一起使用会导致错误。 无所谓你在哪里做。

--rm--restart不能在Dockerfile中定义。 选项也是相互排斥的。 docker run只允许使用一个或另一个。

Docker Compose文件允许您为容器设置restart选项。 容器的移除,更多的是其他组合命令的生命周期事件,比如up --builddownrm而不是分配给容器的东西。

docker运行

 --rm Automatically remove the container when it exits --restart string Restart policy to apply when a container exits (default "no") Possible values are : no, on-failure[:max-retry], always, unless-stopped 

用户docker工具的一个例子

 docker run \ --rm \ -v /root/.m2:/root/.m2 \ -v /my/java/proj:/usr/src/mymaven \ -w /usr/src/mymaven \ maven:3.3.3-jdk-8 mvn clean package