我有一個運行在Docker容器中的服務器端應用程序。其中的一個進程已經掛起並且需要被殺死(應用程序會產生另一個進程來替換它)。在正在運行的Docker容器中終止進程
有什麼辦法可以在不停止Docker容器的情況下終止進程?
我有一個運行在Docker容器中的服務器端應用程序。其中的一個進程已經掛起並且需要被殺死(應用程序會產生另一個進程來替換它)。在正在運行的Docker容器中終止進程
有什麼辦法可以在不停止Docker容器的情況下終止進程?
現在Docker是不可能的,但似乎預定爲0.8,請參閱問題#1228 here。
然而可以使用LXC-連接到運行在現有的容器(在上面的問題的意見看到)一個shell,你然後可以從那裏殺死你掛起的進程:
$ lxc-attach -n FULLCONTAINERID /bin/bash
你可以得到與搬運工PS --no-TRUNC的FULLCONTAINERID =真:
根@ turmes /家/ zoobab [35]#搬運工PS --no-TRUNC =真 容器ID IMAGE>指令C STATUS PORTS NAMES 2741d88a51148e66d7b2b44d8c1cc6ed7d 1515f370be5d00bd003d40cf8d575b zoobab/centos57:latest kamailio -P /var/run/kamailio.pid -m 64 -M 4 -u kamailio -g kamailio -D 1最多19分鐘angry_fermat
root @ turmes/home/zoobab [36]#
你現在可以在多克1.3使用exec
command做到這一點:
docker exec container_name kill process_name
我使用了與你所說的相同的命令。但我不能殺死這個過程。當我輸入「docker top container_name」時,我仍然可以看到這個過程。我現在能做什麼? – priya
也許時代已經改變,但作爲docker.latest: docker kill 593690fe0087
當我運行docker ps
時,CONTAINER ID
死亡。我在那裏有一個集裝箱2個星期,只有當環境不好時纔看到它。
謝謝ometra。這個問題似乎是關於在現有的正在運行的容器上運行另一個命令 - 非常有用,也是更普遍的情況。 我實際上最終通過在Docker主機上查找掛起的進程並直接從那裏殺死它來解決這個問題,而沒有將lxc連接到容器。你的答案也可以。謝謝。 –