unix - 如何杀死容器内的进程? Docker 顶部命令

标签 unix command-line process docker kill

我有来自 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/

相关文章:

cmd - 如何在 WinXP cmd shell 中加载 ANSI 转义码或获取彩色文件列表?

bash - 使用 ffmpeg 从 unix 命令批量将 wav 文件批量转换为 16 位

bash - 在 bash 脚本中,如何从使用 eval 命令时执行的程序中获取 PID?

macos - 如何使用curl下载文件

python - 在 Python 中删除 Root 权限

linux - 递归查找目录中文件的数量

php - mysql 连接在命令行上不起作用

使用 pthread.h 进行多线程 C 编程

c - 我应该为我的应用程序使用进程还是线程?

process - 启动另一个程序然后退出