PV: 回 / All:

【Docker】停止できずにタイムアウトする時の対処法

Docker未経験でちょっと触る機会があって苦戦しているのですが、その時の対処法を備忘録として。

結論

docker createやdocker run時に「–init」オプションを付ける。

解説

Dockerはホストから受け取った停止命令(SIGTERM)を、Dockerコンテナ内のPID 1のプロセスに対して送信するらしいのですが、
こいつがSIGTERMをうまく受け取れない時があるらしいんです。

そういう時、確実にメインプロセスに渡すためにPID 1をinitプロセスに置き変え、そのプロセスが確実に渡してくれるらしいです。

P.S.

Dockerむずいね