我创建了自己的linux容器并且处于运行状态。我想在一天后自动删除正在运行的容器。
无论如何都要自动删除容器?
如果可能,我在哪里必须在Dockerfile中添加脚本/代码?
答案 0 :(得分:2)
没有内置功能可以明确地执行此操作。但是,你可以在几个地方破解解决方案。
在容器内,您可以拥有一个运行的入口点:
#!/bin/sh
( sleep 86400 && kill 1 && sleep 10 && kill -9 1 )&
exec "$@"
在后台运行一个子shell,它将休眠一天,发送一个SIGTERM,给进程10秒钟优雅退出,然后发送一个SIGKILL。最后的执行官将CMD
作为pid 1运行。
你可以在一天之后劫持健康检查以杀死pid 1。您可以在运行运行状况检查时使用超时,或者如果您需要定期运行状况检查以查找其他用途,请使用ps
命令查看进程启动时间。
在容器之外,你可以运行一个脚本,可能是在cron中,它检查docker ps
的输出,gret为" Up。* days",并选择性地运行{{1匹配线上。我建议使用docker rm -f
的{{1}}选项编写脚本,并使用容器上的标签来限制执行此操作的容器。
答案 1 :(得分:0)
我之前有过这个要求,我在脚本文件中使用了睡眠86400,如
service apache2 start&&在bash脚本中睡眠86400, 运行1天。
否则你可以通过这个解释
的帖子