簡體   English   中英

無法終止 docker 容器中 PID 為 1 的節點進程

[英]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 -9ps -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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM