Dockerコンテナの停止中にスクリプトを実行できますか?

Dockerコンテナの停止中にスクリプトを実行できますか?

実行時にコンテナ内でいくつかのスクリプトを実行したいと思います。

docker stop ${ContainerName}

これを達成する方法はありますか?

答え1

これは非常に良い質問です。

まず、コンテナ内のルートプロセスにdocker stopタイプを送信します。SIGTERMデフォルトでは、プロセスはSIGKILLDockerが無慈悲メッセージを送信して終了するまで10秒の時間を持ちます。[1]

第二に、強力なアプリケーションは、プロセスが予期せず終了した場合にデータを破壊しないでください。たとえば、Nginxはシステム信号を処理する方法をよく文書化しています。[2]

ただし、onwアプリケーションでもシェルスクリプトを作成する場合は、独自の信号処理を実装する必要があります。ほんの数行のコードで可能です。これは素晴らしいチュートリアルです。[サム]

良い一日をお過ごしください。

関連情報