【问题标题】:Docker 'exitpoint' - run a command before a container is `down`ed or `stop`ped?Docker 'exitpoint' - 在容器“down”或“stop”之前运行命令?
【发布时间】:2018-01-28 11:22:32
【问题描述】:

为什么?因为我propagating binds 允许容器挂载联合文件系统,并且当它退出时,它会留下混乱。 fusermount -uz /mount/point 清理它,所以我希望它在退出时发生。


有没有办法为 Docker 容器提供诸如退出点或退出命令之类的东西?

我尝试将; echo EXITING ; myexitcmd 附加到入口点,现有命令正在长时间运行,但它似乎没有运行。

这完全有道理,因为正在运行的是sh -c "myentrycmd; echo EXITING; myexitcmd",而被杀死的是那个shell,而不是其中的myentrycmd

因此,解决方案不必是特定于 Docker 的,我也可以提出我的问题:如何捕获所有“退出”信号,并首先/代替完成运行我的(内联)脚本?

我也尝试过作为入口点:

#!/bin/sh
cleanup() {
    echo EXITING
    myexitcmd
}

trap 'cleanup' INT
myentrycmd

在 Dockerfile 中使用 STOPSIGNAL SIGINT。那里也没有雪茄。

【问题讨论】:

    标签: linux shell docker


    【解决方案1】:

    使用minit 作为入口点。它在容器启动时运行 /etc/minit/startup,在容器停止时运行 /etc/minit/shutdown。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多