当前位置: 首页 > 面试题库 >

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

阎扬
2023-03-14
问题内容

我有一个来自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”。我怎么了


问题答案:

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



 类似资料:
  • 问题内容: 我有一个程序生成并与CPU繁重,不稳定的进程通信,而不是由我创建的。如果我的应用程序崩溃或被杀死,我也希望子进程也被杀死,因此用户不必跟踪它们并手动杀死它们。 我知道以前已经讨论过该主题,但是我已经尝试了所有描述的方法,但似乎没有一种方法能够经受住测试的考验。 我知道这是有可能的,因为终端一直在这样做。如果我在终端中运行某些程序并杀死该终端,则这些东西总是会死掉。 我试过了,双叉和。不

  • 问题内容: 我在前台启动了我的程序(守护程序),然后用杀死了它,但剩下一个僵尸,无法用杀死它。如何杀死僵尸进程? 如果僵尸是一个死进程(已被杀死),我如何将其从输出中删除? 问题答案: 僵尸已经死了,所以您无法杀死它。要清理僵尸,必须等待其父级等待,因此杀死父级应该可以消除僵尸。(父对象死后,僵尸将被pid 1继承,而pid 1将等待该僵尸并清除其在进程表中的条目。)如果守护程序正在生成成为僵尸的

  • 问题内容: 我的目标是编写一个运行python脚本的docker映像,该脚本会生成很多充满随机数的csv文件,完成后将这些文件写入外部存储驱动器,然后退出容器。假设它写入了很多这样的csv文件,以致它们无法存储到内存中。 我担心的是容器遇到错误并退出(或由用户退出),然后创建了一堆必须手动清除的垃圾文件的情况。 第一个解决方案是将快速驱动器(如SSD)直接安装到容器中并对其进行写入。完成后,它将数

  • 每次重新启动时,在ubuntu上运行时,都会看到进程的负载 我想干掉所有这些进程(我不知道为什么它们在重新启动时运行,但它们会极大地降低我的cpu性能。) 我尝试了这里的每一个建议,停止并移除所有docker容器,但没有任何效果:进程仍在运行。 我怎么解决这个?

  • 问题内容: 我无法杀死或停止任何泊坞窗容器。我已允许非特权用户运行Docker命令。并且工作正常。但是我无法停止其他任何容器。 我得到了: 与sudo相同的错误。同时,所有容器都可以成功运行,但是要停止它们,只能完全重新引导系统。 Docker撰写示例:#使用postgres / example用户/密码凭证版本:“ 3.1” Docker信息: 问题答案: AppArmor(应用程序装甲)是Li

  • 问题内容: 我试图在Sublime上为Node.js建立一个构建系统,所以我可以按F7键在打开的文件上调用“节点”。问题在于该过程将永远开放,因此,第二次使用F7时,我会获得一个加载项。 有没有办法可以杀死来自node.js的打开的“ node.exe”进程? 问题答案: 使用以下命令集来标识在给定端口上运行的进程并从命令行终止该进程 它将输出类似于以下所示的详细信息 然后使用 终止该过程。使用再