假设我想在触发容器终止时执行清理脚本。我如何使用docker-compose来实现这一点?
这可以方便地自动备份文件,数据库等为开发容器。
docker
容器意味着是短暂的:
这里的"短暂"是指容器可以被停止和销毁,然后用绝对最小的设置和配置重新构建和替换。
基于这个概念,docker
本身不提供任何钩子到关闭进程。docker-compose
是建立在docker
之上的,也没有增加这样的功能。
也许你可以重新思考你的问题docker
的方式,以更好地适应docker
的预期用途。如果没有进一步的背景,很难说什么是一个好的解决方案,但也许以下方法之一可以帮助您:
-
中配置要发送的自定义信号docker stop
向容器内的主进程发送SIGTERM
信号。您可以使用自定义入口点或监控进程来触发SIGTERM
上的适当操作。这种方法需要定制容器。使用stop_signal
属性,您还可以在docker-compose.yml
-
如果你只是想从容器中持久化数据文件,只需配置正确的
volumes
可能就足够了 -
你可以使用
docker events
来监听和处理docker daemon
发出的任何类型的事件