概要
dockerコンテナを永続化する方法としてRUNコマンドにhoge & tail -f hoge.log
のようにしているならば要注意です!
場合によってはゾンビコンテナになります!
なぜそうなるのかというと、メインプロセス(フォアグラウンドプロセスでも)が異常終了してもtail
コマンドが正常である限り、そのまま稼働し続けるからです!
restart policyが定義されていても期待した動作にならないでしょう!
検証方法
例として、RUNコマンドでhoge && tail -f hoge.log
が定義されているとする。
hogeプロセスをkillしてみてください!
tail -f hoge.log
だけを実行するゾンビコンテナの出来上がりです!
対策法
監視システムが導入されているならば、メインプロセスの状態を監視して異常時に自動起動するような仕組みを導入する。
他にいい方法があればご教授ください!