为 Docker 容器设置最长生命周期?
Set max lifetime for Docker Container?
是否有可能启动一个 Docker 容器(使用 CMD 中的某些命令)并确保它不会停留超过指定的时间?
例如我有一个 Ubuntu 容器,我想启动它,执行一些命令并在最后退出(杀死容器)。但是这些命令可能包含无限循环或者可能只持续很长时间,所以我想确保 Docker 容器在指定的时间后自动终止。
快速解决方法:
docker run -d --name busybox busybox:1.26.2-glibc sleep 25; sleep 10; docker rm -f busybox
解释:
我是运行一个busybox容器并将它命名为busybox。在容器中我是 运行 sleep 25 命令,因此容器将存活 25 秒。但是我想超时并在 10 秒内删除容器。
另一种解决方法:
timeout --signal=SIGKILL 5 docker run --rm -it busybox:1.26.2-glibc /bin/sh
遗憾的是 docker 未提供 17.09.0-ce 的此类功能。 Here is the feature proposal.
是否有可能启动一个 Docker 容器(使用 CMD 中的某些命令)并确保它不会停留超过指定的时间?
例如我有一个 Ubuntu 容器,我想启动它,执行一些命令并在最后退出(杀死容器)。但是这些命令可能包含无限循环或者可能只持续很长时间,所以我想确保 Docker 容器在指定的时间后自动终止。
快速解决方法:
docker run -d --name busybox busybox:1.26.2-glibc sleep 25; sleep 10; docker rm -f busybox
解释:
我是运行一个busybox容器并将它命名为busybox。在容器中我是 运行 sleep 25 命令,因此容器将存活 25 秒。但是我想超时并在 10 秒内删除容器。
另一种解决方法:
timeout --signal=SIGKILL 5 docker run --rm -it busybox:1.26.2-glibc /bin/sh
遗憾的是 docker 未提供 17.09.0-ce 的此类功能。 Here is the feature proposal.