自动停止 docker 中的数据库容器
stop a database container in docker automatically
我正在使用脚本 rc.db 设置数据库容器,它提供标准的初始化命令,例如:
/etc/rc.db start
/etc/rc.db stop
/etc/rc.db status
在 Is it possible to install a complex server inside a Docker container? 中,我知道我可以使用一个简单的脚本来启动数据库容器(例如名称为 /etc/db_run.sh:
#/bin/sh
/etc/rc.db start
wait
和 Dockerfile
...
运行 /etc/db_run.sh
因为正确关闭数据库很重要。我希望当容器停止时,它可以调用 /etc/rc.db stop.
当Docker 尝试停止容器时,它会发送一个 SIGTERM 信号,然后在宽限期后发送一个 SIGKILL。只需捕获此信号并调用您的脚本或将其传递给数据库进程,以适当者为准。
我怀疑如果你让 DB 成为前台的主进程 运行,它会自己正确处理信号。
我正在使用脚本 rc.db 设置数据库容器,它提供标准的初始化命令,例如:
/etc/rc.db start
/etc/rc.db stop
/etc/rc.db status
在 Is it possible to install a complex server inside a Docker container? 中,我知道我可以使用一个简单的脚本来启动数据库容器(例如名称为 /etc/db_run.sh:
#/bin/sh
/etc/rc.db start
wait
和 Dockerfile ... 运行 /etc/db_run.sh
因为正确关闭数据库很重要。我希望当容器停止时,它可以调用 /etc/rc.db stop.
当Docker 尝试停止容器时,它会发送一个 SIGTERM 信号,然后在宽限期后发送一个 SIGKILL。只需捕获此信号并调用您的脚本或将其传递给数据库进程,以适当者为准。
我怀疑如果你让 DB 成为前台的主进程 运行,它会自己正确处理信号。