一天之后是否可以自动删除正在运行的容器?

我已经创build了我自己的Linux容器并处于运行状态。 我想在一天后自动删除正在运行的容器。

有无论如何删除容器自动?

如果可能的话,我在哪里必须在我的Dockerfile中添加脚本/代码?

没有内置的function,明确这一点。 但是你可以在几个地方破解一个解决scheme。


在容器内部,可以有一个运行的入口点:

#!/bin/sh ( sleep 86400 && kill 1 && sleep 10 && kill -9 1 )& exec "$@" 

这将在后台运行一个子shell,睡一会,发送一个SIGTERM,让进程正常退出10秒,然后发送一个SIGKILL。 最后,exec执行你的CMD为pid 1。


你可以在一天后劫持健康检查杀死pid 1。 您可以在运行健康状况检查时使用超时,也可以在ps命令中查看进程启动时间,如果您需要进行其他用途的常规健康检查。


在容器之外,你可以运行一个脚本,可能在cron中,检查docker docker ps的输出,greps为“Up。* days”,并在匹配的行上select运行docker docker rm -f 。 我build议使用--format docker ps--format选项来编写脚本,并在容器上使用标签来限制执行此操作的容器。

我早些时候有这个要求,我在脚本文件中使用睡眠86400

服务apache2启动&&睡眠86400在bash脚本,运行1天。

否则你可以通过这个解释的线程

停止并删除docker集装箱,如果它的运行