我正在尝试用下面的命令杀死我的docker容器:
$ docker container kill $(docker ps -q)但是,容器没有响应。
我可以使用以下命令登录到它们:
$ docker exec -it container_id bash但是终端中的任何命令都会挂起。
有趣的是,不知何故,这个过程似乎并不存在。我获得了运行容器的列表,进程I如下:
$ for i in $(docker container ls --format "{{.ID}}"); do docker inspect -f '{{.State.Pid}} {{.Name}}' $i; done
12821 /brave_carson
12661 /trusting_hoover0
12617 /peaceful_franklin
12534 /frosty_volhard
12702 /zealous_sammet
12678 /flamboyant_jang
12690 /dreamy_driscoll当我尝试用kill -9 pid杀死它时,我得到了错误:
$ kill -9 12821
-bash: kill: (12821) - No such process这是非常不寻常的。我该如何解决这个问题?我不希望重启docker,除非这是最后也是唯一的选择。
发布于 2020-11-10 20:37:20
如果你杀死了容器,你就不能执行它。容器必须处于运行状态才能运行exec (您应该从中得到一条错误消息)。
当容器没有运行时,应该没有进程。但是,docker中的容器定义(包括日志和对容器文件系统的更改)将一直保留,直到您使用docker container rm (与docker rm相同)将其删除,例如:
docker container rm brave_carson发布于 2020-11-11 01:38:02
顺便说一句,你可以使用docker run ... --rm ...在停止后自动删除容器
https://stackoverflow.com/questions/64768305
复制相似问题