[英]Can't kill node process with PID 1 in docker container
我是 docker 的新手。我有一個使用FROM node:14-alpine
的 docker 容器。 我正在使用它來運行 web 應用程序,因此我不必在我的主機上安裝它的依賴項。 當我啟動容器和docker exec my-container ps -a
我得到:
PID USER TIME COMMAND
1 root 0:00 node
18 root 0:00 ps -a
當我再次kill -9
和ps -a
(使用docker exec
)時,我得到相同的docker killall node
發生同樣的事情。 但是,如果我啟動其他一些節點進程,我能夠成功地殺死它們。
為什么我不能終止 PID 為 1 的節點進程? 我相信節點在容器啟動時啟動,因為節點末尾的CMD [ "node" ]
行node:14-alpine
Dockerfile; 不需要node
立即啟動怎么辦? 您可以在此處找到我的項目的 github 存儲庫。
Docker 在 PID 1 上啟動它的主要 RUN 進程。這確實是一個不能(輕易)殺死的特殊進程。
This article對此進行了解釋,並建議使用Tini讓它在另一個 PID 上生成您的進程。 問題應該用它來解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.