停止docker时运行脚本

时间:2016-03-05 00:00:57

标签: docker dockerfile

我正在尝试使用dockerfile创建docker容器,其中在容器启动时执行script-entry.sh,在容器停止时执行script-exit.sh。

ENTRYPOINT帮助完成了script-entry.sh在启动时运行的问题的第一部分。

我如何确保在docker exit / stop上执行script-exit.sh?

2 个答案:

答案 0 :(得分:12)

docker stop向在Docker容器内运行的主进程(条目脚本)发送SIGTERM信号。因此,您需要一种方法来捕获信号,然后触发退出脚本。

有关信号捕获的说明和示例(靠近页面末尾),请参阅This link

答案 1 :(得分:-1)

创建一个脚本,并将其另存为bash文件,其中包含以下内容:

$CONTAINER_NAME="someNameHere"
docker exec -it $CONTAINER_NAME bash -c "sh script-exit.sh"
docker stop $CONTAINER_NAME

运行该文件而不是运行docker stop,这应该可以解决问题。您也可以为其设置别名。

至于Docker本身内部的自动化,我以前从未见过它。祝你好运,如果那是你想要走的路。