docker版本:1.12.6
以下是在/etc/init.d/docker中:
stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile -d 300 $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
此脚本在服务器关闭序列(/etc/rc0.d/K95docker)时调用。
stop函数是否应该先优雅地停止所有docker容器然后杀死守护程序?
突然杀死守护程序似乎并不好。
问题是,在服务器启动时,调用了docker start,它无法启动几个docker容器。他们最终会遇到如下错误:
time="2018-10-23T17:09:11.482254305Z" level=error msg="Failed to start container 6bbcfaa28e44663ed3d4dbbe6aedb50986725f03c1e3775b4a4cf1aa28f14a86: invalid header field value \"oci runtime error: container with id exists: 6bbcfaa28e44663ed3d4dbbe6aedb50986725f03c1e3775b4a4cf1aa28f14a86\\n\""
我打算引入另一个停止序列脚本,该脚本首先优雅地停止所有docker容器,然后按K95docker脚本。好吗?
请建议在其他任何环境中如何做。