首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker不会杀死容器

Docker不会杀死容器
EN

Stack Overflow用户
提问于 2020-11-10 19:43:57
回答 2查看 61关注 0票数 0

我正在尝试用下面的命令杀死我的docker容器:

代码语言:javascript
运行
复制
$ docker container kill $(docker ps -q)

但是,容器没有响应。

我可以使用以下命令登录到它们:

代码语言:javascript
运行
复制
$ docker exec -it container_id bash

但是终端中的任何命令都会挂起。

有趣的是,不知何故,这个过程似乎并不存在。我获得了运行容器的列表,进程I如下:

代码语言:javascript
运行
复制
$ 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杀死它时,我得到了错误:

代码语言:javascript
运行
复制
$ kill -9 12821
-bash: kill: (12821) - No such process

这是非常不寻常的。我该如何解决这个问题?我不希望重启docker,除非这是最后也是唯一的选择。

EN

回答 2

Stack Overflow用户

发布于 2020-11-10 20:37:20

如果你杀死了容器,你就不能执行它。容器必须处于运行状态才能运行exec (您应该从中得到一条错误消息)。

当容器没有运行时,应该没有进程。但是,docker中的容器定义(包括日志和对容器文件系统的更改)将一直保留,直到您使用docker container rm (与docker rm相同)将其删除,例如:

代码语言:javascript
运行
复制
docker container rm brave_carson
票数 1
EN

Stack Overflow用户

发布于 2020-11-11 01:38:02

顺便说一句,你可以使用docker run ... --rm ...在停止后自动删除容器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64768305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档