我无法删除死容器,它在重新启动Docker服务后再次出现。

docker ps -a

CONTAINER ID         STATUS

11667ef16239         Dead

然后

docker rm -f 11667ef16239

然后,当我运行docker ps -a时,没有Docker容器显示。

docker ps -a

CONTAINER ID         STATUS

但是,当我重新启动docker服务时:

service docker restart

并再次运行docker ps -a:

docker ps -a

CONTAINER ID         STATUS

11667ef16239         Dead

嗨,这仍然是当前的问题,但目前接受的答案不再有效,而且相当危险。 这是一个很好的答案,所以如果可能的话你会接受那个答案,这是公平的

实际上这些日子发生了轻微变化,以便摆脱那些可能会尝试卸载那些被阻止的文件系统以释放它们的死容器

所以,如果你收到这样的消息

Error response from daemon: Cannot destroy container elated_wozniak: Driver devicemapper failed to remove root filesystem 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3: Device is Busy

跑吧

umount /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3

你可以在那之后正常删除容器

这个感觉就像最好,最安全的!

我只是重新启动了系统并且我已经重新登录..容器已经消失了。

这对我有用,虽然我不得不重新启动docker服务以使docker ps -a的输出实际为空。

两年后,这篇文章仍然具有现实意义。花了两个小时试图找到一个解决方案然后遇到了这个:github.com/moby/moby/issues/3786#issuecomment-33471966。要卸载所有devicemapper容器,请使用umount $(grep devicemapper procmounts | awk {print$2} | sort -r)

最有可能的是,当守护进程试图清理容器时发生错误,他现在陷入了这种"僵尸"状态。

我担心你唯一的选择是手动清理它:

$ sudo rm -rf /var/lib/docker//11667ef16239.../

其中是驱动程序的名称(aufs,overlay,btrfs或devicemapper)。

通过发出一个docker命令而不是诉诸于sudo rm ...对于像我这样在我们的产品盒上没有sudo权限的人来说,这个功能可以实现这个功能。

您也可以使用此命令删除dead容器

docker rm $(docker ps --all -q -f status=dead)

但是,我真的不确定为什么以及如何创建dead容器。每当我得到dead容器时,这个错误似乎与https://github.com/typesafehub/mesos-spark-integration-tests/issues/34有关

[更新]

通过Docker 1.13更新,我们可以轻松删除不需要的容器,悬空图像

$ docker system df #will show used space, similar to the unix tool df

$ docker system prune # will remove all unused data.

您可能需要添加--force param才能正常工作

@Akvel它没有它们。它已经死了,所以没有依赖的过程。

docker system prune的表现超出预期,但解决了这个问题。如OP中所述,docker rm --force不起作用。

正如@rdupz所暗示的,docker system prune是危险的,请参阅此评论,了解如何使用-a删除甚至命名的卷。它还会删除网络,这通常不是您想要的。最好在1.13+中使用docker image prune和docker volume prune。

此命令提供语法错误。我认为你错放了力量-f param

删除死容器(CentOS 7上的docker 17.06.1-ce)时出现以下错误:

Error response from daemon: driver"overlay" failed to remove root filesystem for :

remove /var/lib/docker/overlay//merged: device or resource busy

以下是我修复它的方法:

1.检查哪些其他进程也在使用docker资源

$ grep docker /proc/*/mountinfo

输出类似这样的东西,其中/proc/之后的数字是pid:

/proc/10001/mountinfo:179...

/proc/10002/mountinfo:149...

/proc/12345/mountinfo:159 149 0:36 / /var/lib/docker/overlay/...

2.检查上述pid的进程名称

$ ps -p 10001 -o comm=

dockerd

$ ps -p 10002 -o comm=

docker-containe

$ ps -p 12345 -o comm=

nginx   <<

所以,带有pid 12345的nginx似乎也在使用/var/lib/docker/overlay/...,这就是我们无法删除相关容器并获得device or resource busy错误的原因。 (有关nginx如何与docker容器共享相同的mount命名空间,请参见此处,以防止删除它。)

3.停止nginx然后我可以成功删除容器。

$ sudo service nginx stop

$ docker rm

谢谢你先生的nginx信息,我有同样的问题,它生气了我很多次,我也遇到了与DNS进程相同的问题(命名),不得不:systemctl restart命名

我得到了同样的问题,两个答案都没有帮助。

对我有帮助的只是创建缺少的目录并删除它们:

mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3

mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3-init

docker rm 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3

强行拆除容器为我工作。

docker rm -f

笔记:

请注意,此命令可能会抛出此错误

Error response from daemon: Driver devicemapper failed to remove root filesystem : Device is Busy

尽管有此消息,仍应删除您的死容器设备映射器的安装。也就是说,您将不再访问此路径:

/var/lib/docker/devicemapper/mnt/

grep 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3 /proc/*/mountinfo

然后找到656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3and的pid并杀死它

其中proc之后的数字是pid

我已经尝试了上面的建议,但没有奏效。

然后

我试试:docker system prune -a,它第一次没用

我重新启动系统

我再试一次docker system prune -a。这次它有效。它会发出一条警告信息,最后问"你确定要继续吗?是吗?答案。答案:是的。时间到最后,死人的容器都消失了。

使用docker ps -a进行验证

重要 - 这是核选项,因为它会破坏所有容器+图像

这对我有用。谢谢!我还必须重新启动系统。

尝试运行以下命令。它总是适合我。

# docker volume rm $(docker volume ls -qf dangling=true)

# docker rm $(docker ps -q -f 'status=exited')

执行上述命令后,重启docker by,

# service docker restart

尝试了以上所有(重启/重启docker)。

所以这是错误的docker rm:

$ docker rm 08d51aad0e74

Error response from daemon: driver"devicemapper" failed to remove root filesystem for 08d51aad0e74060f54bba36268386fe991eff74570e7ee29b7c4d74047d809aa: remove /var/lib/docker/devicemapper/mnt/670cdbd30a3627ae4801044d32a423284b540c5057002dd010186c69b6cc7eea: device or resource busy

然后我做了以下几点:

$  grep docker /proc/*/mountinfo | grep 958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac

/proc/20416/mountinfo:629 574 253:15 / /var/lib/docker/devicemapper/mnt/958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,relatime shared:288 - xfs /dev/mapper/docker-253:5-786536-958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota

这是违规过程的PID,让它忙碌 - 20416(/ proc /之后的项目)

所以我做了一个ps -p,我惊讶地发现:

[devops@dp01app5030 SeGrid]$ ps -p 20416

PID TTY          TIME CMD

20416 ?        00:00:19 ntpd

一个真正的WTF时刻。所以我把问题与Google解决了,发现了这个问题:

然后找到了这个https://github.com/docker/for-linux/issues/124

事实证明我必须重新启动ntp守护进程并修复了这个问题!

对于Windows:

del D:\ProgramData\docker\containers\{CONTAINER ID}

del D:\ProgramData\docker\windowsfilter\{CONTAINER ID}

然后重启Docker Desktop

这里有很多答案,但没有一个涉及对我有用的(快速)解决方案。

我正在使用Docker版本1.12.3,构建6b644ec。

我只是运行了docker rmi来从死容器来的图像。然后docker ps -a显示死容器完全丢失。

然后,当然,我只是重新拉动图像并再次运行容器。

我不知道它是如何在这种状态下发现的,但它是......

试试,它对我有用:

$ docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES

4f13b53be9dd        5b0bbf1173ea       "/opt/app/netjet..."   5 months ago        Dead                                    appname_chess

$ docker rm $(docker ps --all -q -f status=dead)

Error response from daemon: driver"devicemapper" failed to remove root filesystem for 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440: failed to remove device 487b4b73c58d19ef79201cf6d5fcd6b7316e612e99c14505a6bf24399cad9795-init: devicemapper: Error running DeleteDevice dm_task_run failed

su

cd /var/lib/docker/containers

[root@localhost containers]#  ls -l

total 0

drwx------. 1 root root 312 Nov 17 08:58 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440

[root@localhost containers]# rm -rf 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440

systemctl restart docker

试试这个对我有用:

docker rm -f

eg. docker rm -f 11667ef16239

尝试杀死它,然后删除> :)即

docker kill $(docker ps -q)

尝试这个它在centos上为我工作

1)docker container ls -a

为您提供一个容器列表,检查您要删除的状态

2)docker container rm -f 97af2da41b2b

不是一个大粉丝力旗,但做的工作

检查它是否工作只需再次激活命令或列出它。

3)继续,直到我们清除所有死容器

在Centos7和Docker 1.8.2上运行,我无法使用Zgr3doo的解决方案来卸载devicemapper(我认为我得到的响应是没有挂载/找到卷。)

我认为sk8terboi87ツ的回答也有类似的事情:我相信消息是无法卸载卷,并列出了它试图卸载的特定卷以删除死容器。

对我有用的是先停止docker,然后手动删除目录。我能够通过上一个命令的错误输出确定它们是哪些删除所有死容器。

对上面含糊不清的描述道歉。在我处理了死箱之后的几天,我发现了这个问题。 ..但是,我今天注意到了类似的模式:

$ sudo docker stop fervent_fermi; sudo docker rm fervent_fermi fervent_fermi

Error response from daemon: Cannot destroy container fervent_fermi: Driver devicemapper failed to remove root filesystem a11bae452da3dd776354aae311da5be5ff70ac9ebf33d33b66a24c62c3ec7f35: Device is Busy

Error: failed to remove containers: [fervent_fermi]

$ sudo systemctl docker stop

$ sudo rm -rf /var/lib/docker/devicemapper/mnt/a11bae452da3dd776354aae311da5be5ff70ac9ebf33d33b66a24c62c3ec7f35

$

我注意到,当使用这种方法时,docker重新创建了具有不同名称的图像:

a11bae452da3     trend_av_docker  "bash"   2 weeks ago    Dead    compassionate_ardinghelli

这可能是由于容器发出了restart = always,但容器ID与先前使用我强制删除的卷的容器的ID相匹配。删除这个新容器没有困难:

$ sudo docker rm -v compassionate_ardinghelli

compassionate_ardinghelli

备选方案2:将其重新编写为独立的答案。这样做可以参考其他答案 - 但要具体说明你在谈论哪个答案,例如:按作者姓名。从"我还不能评论......"开始,几乎可以保证你的帖子被删除。如果您有一些有用的东西可以作为答案添加 - 只需这样做! (并且到那里再获得9个代表!)祝你好运。

用于删除所有死容器

<5233>

删除所有已退出的容器docker rm -f $(docker ps --all -q -f status=exited)

因为我有-f是必要的

desktop docker 无法卸载_关于Docker:Docker – 无法移除死容器相关推荐

  1. docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit

    BuildKit是Docker官方社区推出的下一代镜像构建神器--可以更加快速,有效,安全地构建docker 镜像.Docker v18.06已经集成了该组件.BuildKit可用于多种导出格式(例如 ...

  2. docker 注册表_什么是Docker注册表及其用法?

    docker 注册表 Docker images generally provided by registries. Docker officially provide allready one pu ...

  3. desktop docker 无法卸载_用containerd替换docker(shim)

    kubernetes 1.20 要去掉对 Docker的支持,具体看这里,本篇文章介绍用 containerd 替换 docker,从work节点开始,然后才到master节点. 首先查看集群 [ro ...

  4. desktop docker 无法卸载_在docker-for-desktop OSX上删除kubernetes集群

    What is the equivalent command for minikube delete in docker-for-desktop on OSX As I understand, min ...

  5. docker mysql优势_前端使用docker有什么优势呢?

    那么如果使用docker有什么优势呢? 你觉得docker没啥用,自然是因为你没遇到这样的场景,所以就算强行上了docker,也会觉得非常别扭.想了想前端用docker好像确实不是非常必要,npm b ...

  6. docker 管理工具_详解Docker可视化管理工具shipyard--部署教程及功能展示

    概述 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化.但对于命令行过敏.非技术人员,进 ...

  7. java docker 持续集成_最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  8. docker mysql 时区_配置mysql docker容器的时区

    所以你需要在这种情况下使用Dockerfile并像下面那样处理它 FROM mysql:5.7.21 RUN echo "USE mysql;" > /docker-entr ...

  9. 群晖docker搭建印象笔记_群晖docker安装蚂蚁笔记安装教程

    背景 偶然看见其他网友群晖搭建了蚂蚁笔记,自己也想装一个,但是在其他教程都碰见了一些坑,写个教程防止大家绕路. 用途 传说中蚂蚁笔记有桌面端.手机端.微信端的私有云笔记 安装教程 当然是安装镜像了,需 ...

最新文章

  1. 中国电子学会图形化四级编程题:加减法混合运算器
  2. How to Increase the Memory Limit for 32-bit Applications in Windows 64-bit OS
  3. 对抽象工厂+反射+配置文件的实例理解
  4. 不能卸载java_无法卸载注入的DLL
  5. 正式软件工作第一天————MVC、ext JS、和clsa
  6. Cactiz中文版安装使用
  7. linux 内核4.12,Linux Kernel 4.12 发布,最新的稳定版内核
  8. 简单工厂和 工厂设计模式--抽象工厂模式--Java实现
  9. JavaScript面向对象之构造函数
  10. python中的数据成员有两类_Python类和对象
  11. C语言之fwrite()与fprintf()区别(十一)
  12. UI设计---化繁为简
  13. 普渡大学计算机工程专业提前毕业,Purdue的ECE「普渡大学西拉法叶分校电气与计算机工程学院」...
  14. 摄像头驱动CAMERA SENSOR调试流程
  15. 临沂鸿蒙文化城在哪,位置定了!临沂城区将再建多个公园!
  16. 驾驭你的“职场布朗运动”--李云
  17. 计算机系统集成工作总结,系统集成工作总结报告.docx
  18. 视频教程-必会神器之MySQL数据库-MySQL
  19. Polestar美股上市:5.5万台交付如何支持得起超200亿美元估值
  20. 东方国信 Java一面

热门文章

  1. mysql中更新的命令是,mysql命令总结(陆续更新中)
  2. mcq 队列_MCQ | 软件程序分析工具和组件分类| 免费和开源软件
  3. tohexstring方法_Java Long类toHexString()方法的示例
  4. Redis 属于单线程还是多线程?不同的版本有什么区别?
  5. 第 1-1 课:Java 程序是如何执行的?
  6. Oracle创建视图、通过视图创建表
  7. zoj 1091 Knight Moves
  8. 微信开发1之PHP成功获取微信支付的Token
  9. JDBC中使用PreparedStatement执行SQL语句并管理结果集
  10. C++PrimerPlus学习——第四章编程练习