我有一个来自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。
docker top <container>
docker exec -it <container> ps -aux
docker exec
sudo kill -9 25055