使用docker-compose在容器停止之前执行脚本



假设我想在触发容器终止时执行清理脚本。我如何使用docker-compose来实现这一点?

这可以方便地自动备份文件,数据库等为开发容器。

docker容器意味着是短暂的:

这里的"短暂"是指容器可以被停止和销毁,然后用绝对最小的设置和配置重新构建和替换。

基于这个概念,docker本身不提供任何钩子到关闭进程。docker-compose是建立在docker之上的,也没有增加这样的功能。

也许你可以重新思考你的问题docker的方式,以更好地适应docker的预期用途。如果没有进一步的背景,很难说什么是一个好的解决方案,但也许以下方法之一可以帮助您:

  • docker stop向容器内的主进程发送SIGTERM信号。您可以使用自定义入口点或监控进程来触发SIGTERM上的适当操作。这种方法需要定制容器。使用stop_signal属性,您还可以在docker-compose.yml

    中配置要发送的自定义信号
  • 如果你只是想从容器中持久化数据文件,只需配置正确的volumes可能就足够了

  • 你可以使用docker events来监听和处理docker daemon发出的任何类型的事件

最新更新