【Docker】停止できずにタイムアウトする時の対処法
Docker未経験でちょっと触る機会があって苦戦しているのですが、その時の対処法を備忘録として。
結論
docker createやdocker run時に「–init」オプションを付ける。
解説
Dockerはホストから受け取った停止命令(SIGTERM)を、Dockerコンテナ内のPID 1のプロセスに対して送信するらしいのですが、
こいつがSIGTERMをうまく受け取れない時があるらしいんです。
そういう時、確実にメインプロセスに渡すためにPID 1をinitプロセスに置き変え、そのプロセスが確実に渡してくれるらしいです。
P.S.
Dockerむずいね

ディスカッション
コメント一覧
まだ、コメントがありません