假设我想在触发容器终止时执行清理脚本。我如何使用 docker-compose 解决这个问题?
这可以方便地为开发容器自动备份文件、数据库等。
答案 0 :(得分:1)
docker
容器应该是 ephemeral:
“短暂”是指容器可以被停止和销毁,然后重建并替换为绝对最小的设置和配置。
建立在这个概念的基础上 docker
本身并没有提供任何与关闭过程挂钩的东西。 docker-compose
建立在 docker
之上,也没有添加此类功能。
也许您可以以docker
方式重新思考您的问题,以更好地适应docker
的预期用途。没有进一步的背景,很难说什么是好的解决方案,但也许以下方法之一可以帮助您:
docker stop
向容器中的主进程发送 SIGTERM
信号。您可以使用自定义入口点或主管进程来触发对 SIGTERM
的适当操作。这种方法需要自定义容器。使用 stop_signal
attribute,您还可以配置要在您的 docker-compose.yml
如果您只想保留容器中的数据文件,只需 configuring the right volumes
就足够了
您可以使用 docker events
来侦听 docker daemon
发出的任何类型的事件并对其采取行动