该
--stop-timeout选项是docker在使用
docker stop命令时等待容器停止的最长时间。
当通知容器或命令运行完成时,容器将停止,因此,如果将睡眠时间从100更改为1,您将看到容器在第二秒后停止。
我建议您执行的操作是将
ENTRYPOINT容器的更改为您创建的脚本,该脚本将执行所需的脚本,并从内部跟踪执行时间,并在超时时退出。
之后,您可以使用
--rm脚本启动后将其删除的选项来启动容器。
一个小例子。
Dockerfile:
FROM ubuntu:16.04ADD ./script.sh /script.shENTRYPOINT /script.sh
script.sh:
#!/bin/bashtimeout=5sleep_for=1sleep 100 &find_process=$(ps aux | grep -v "grep" | grep "sleep")while [ ! -z "$find_process" ]; do find_process=$(ps aux | grep -v "grep" | grep "sleep") if [ "$timeout" -le "0" ]; then echo "Timeout" exit 1 fi timeout=$(($timeout - $sleep_for)) sleep $sleep_fordoneexit 0
使用以下命令运行它:
docker build -t testing .docker run --rm testing
该脚本将
sleep 100在后台执行,检查其是否仍在运行以及是否已达到5秒的超时,然后退出。
这可能不是最好的方法,但是如果您想做一些简单的事情可能会有所帮助。



