我有来自 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
但是,在我制作它之后,什么都没有改变。进程仍然有效并每秒输出“你好”。我哪里错了?
最佳答案
当我重现您的情况时,我看到 docker top <container>
之间有不同的 PID和 docker exec -it <container> ps -aux
.当你这样做 docker exec
该命令在容器内执行 => 应该使用容器的 pid。否则,您可以在没有 docker 的情况下直接从主机执行杀戮,在您的情况下:sudo kill -9 25055
.
关于unix - 如何杀死容器内的进程? Docker 顶部命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757405/