一尘不染

如何杀死容器内的进程?Docker最高命令

docker

我有一个来自docker网站官方指南的简单示例。

我运行以下命令:

sudo docker run -d ubuntu:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"
a66asdasdhqie123...

然后从创建的容器中获取一些输出:

sudo docker logs a66
hello
hello
hello
...

然后,我查找容器的运行过程:

sudo docker top a66
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                25055               15152               0                   20:07               ?                   00:00:00            /bin/sh -c while true; do echo hello world; sleep 1; done
root                25295               25055               0                   20:10               ?                   00:00:00            sleep 1

接下来,我尝试杀死容器的第一个过程:

sudo docker exec a66 kill -9 25055

但是,在我做完之后,没有任何改变。进程仍然有效,并且每秒输出“ hello”。我怎么了


阅读 1653

收藏
2020-06-17

共1个答案

一尘不染

重现您的情况时,我会看到docker top <container>和之间的PID不同docker exec -it <container> ps -aux。当您执行docker exec命令时,将在容器内执行=>应使用容器的pid。否则,在这种情况下,您可以在没有docker的情况下直接从主机执行杀死操作sudo kill -9 25055

2020-06-17