Docker中无法正常结束容器的解决思路 - Docker cannot kill or stop container

步骤

  1. 查找无法删除的容器的ID:
# docker ps |grep "容器名" |awk -F' ' '{printf $1}'
b1beca5549ef
#
  1. 执行删除命令删除容器目录:
# ll /path_you_docker_install/containers | grep b1beca5549ef
drwx------. 5 root root 4096 4月   1 17:10 b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37
# rm -rf /path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37

此时会有报错如下:

rm: 无法删除"/path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37/secrets": 设备或资源忙无法删除"/path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37/shm": 设备或资源忙
  1. 从上面报错我们可以看到“secrets”和“shm”共享挂载导致无法删除,首先找到挂载的位置,然后取消挂载后,再删除:
# cat /proc/mounts |grep "docker" |grep "b1beca5549ef"
  1. 取消挂载:
# umount /path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37/secrets
# umount /path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37/shm
  1. 再次查看:
# cat /proc/mounts |grep "docker" |grep "b1beca5549ef"

输出为空

  1. 现在删除容器目录就不会报错了
# rm -rf /path_you_docker_install/containers/b1beca5549ef455479681c05d0704959e44acb4fbacb1e340f203546c9c54b37

删除目录成功后,杀掉容器或者删除容器就都正常了

  1. 删除容器
 # docker kill b1beca5549ef# docker rm b1beca5549ef

完成以上步骤后,绝大多数问题都可以解决了。

附录

关于docker-compose 遇到 “ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.”的报错,可以使用以上排查思路,但是要使用 --verbose来确认具体是哪一个容器的挂载出现了异常,具体使用方法为:

 # docker-compose --verbose ps# docker-compose --verbose down # docker-compose --verbose up -d

会打印当前日志信息,如下:

compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('c7612844041a4569b37b2218134f9a6ff194af3bafccdf7d7593a0e4911e7334')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.24/containers/c7612844041a4569b37b2218134f9a6ff194af3bafccdf7d7593a0e4911e7334/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '',
'Args': ['-c', './StorageDumpService'],
'Config': {'ArgsEscaped': True,'AttachStderr': False,'AttachStdin': False,'AttachStdout': False,'Cmd': ['/bin/sh', '-c', './StorageDumpService'],'Domainname': '','Entrypoint': None,'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/jre1.8/bin'],
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('483a9502f098381ea639a43b2cad946ec201df7f66c5030b1a7b92ddab026126')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.24/containers/483a9502f098381ea639a43b2cad946ec201df7f66c5030b1a7b92ddab026126/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '',
'Args': ['-server','-Xms1024m','-Xmx2048m','-XX:PermSize=128M','-XX:MaxPermSize=256M','-Dh2.configdb.fileLocaltion=./db','-Dlogs.home=./logs','-Dlogging.config=./config/logback-spring.xml','-Dspring.config.location=file:./config/',
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('43336976e7582a260b62339cca801104155c00fc92b1831c176ff259f1f5f327')

查看光标卡在了哪个容器,就是哪个容器出现了问题,以上,如有不对,还请各位订正。

Docker中无法正常结束容器的解决思路 - Docker cannot kill or stop container相关推荐

  1. docker中启动所有的容器命令

    docker中启动所有的容器命令 前提:在3A服务器上部署docker环境 docker中 启动所有的容器命令 docker start $(docker ps -a | awk '{ print $ ...

  2. 最近实际项目中遇到的技术问题与解决思路

    最近实际项目中遇到的技术问题与解决思路 参考文章: (1)最近实际项目中遇到的技术问题与解决思路 (2)https://www.cnblogs.com/lunlunshiwo/p/9222456.ht ...

  3. 关于pycharm中运行代码报错的解决思路

    关于pycharm中运行代码报错的解决思路 复盘一下对于代码运行报错的解决思路,以免忘了. 之前对于代码报错有种恐惧感,生怕出什么幺蛾子,但每次都会有很多bug,每改进一个bug又会出现下一个bug, ...

  4. Docker中Mysql中文乱码(已解决)

    解决Docker中运行的MySQL中文乱码 1.首先创建两个目录 mkdir /tmp/mysql/data mkdir /tmp/mysql/conf 2.编写hmy.cnf文件,将以下内容写到文件 ...

  5. 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  6. Docker中部署项目到容器

    场景 使用Dockerfile定制镜像来部署Tomcat项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99105626 D ...

  7. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  8. 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)

    上一节我们安装和配置了 flannel,本节在 Docker 中使用 flannel. 配置 Docker 连接 flannel 编辑 host1 的 Docker 配置文件 /etc/systemd ...

  9. Docker中操作镜像和容器的常用命令

    场景 CentOS7中Docker的安装与配置: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701 在上面将Doc ...

最新文章

  1. tkinter安装_mac pyenv 安装tkinter,解决tkinter环境的问题
  2. 去云南品味彝族的砣砣肉
  3. 密码技术--非对称加密算法及Go语言应用
  4. 训练FCN时遇到的问题总结
  5. 用信号量锁定:一个例子
  6. python数据获取手段包括哪些_python开发应用-本地数据获取方法
  7. WebMagic学习总结
  8. ubuntu NGINX uwsgi https 部署Django 遇到的问题
  9. java植树问题代码,小学数学最难的13种典型题,让孩子吃透了,拿高分不难!
  10. 数据标准在数据治理中的意义
  11. Linux设备驱动(转)
  12. 计算机在施工中的应用研究,浅析计算机技术及网络在工程施工中的应用研究.pdf...
  13. bat批处理 变量名写入文本,中文写入文本,延迟写入文本
  14. GridView里面的Item高度设置
  15. SPSS25安装教程
  16. s7-200通信测试软件,S7-200 SMART 与调试助手之间 TCP 通信[技术学习]
  17. 免费客户旅程(Customer Journey Mapping) 示例总汇
  18. 发票专用驱动sjz_停机前未勾选完的发票,升完级后这样操作
  19. 一次性将多个网址收藏到谷歌书签的文件夹中
  20. 电脑登陆出现此工作站和主域间的信任关系失败

热门文章

  1. 转:是什么触动了你内心深处的善意与同情?
  2. 数字芯片设计中常见的三个握手协议
  3. Docker前世今生
  4. 互联网设备信息:Censys
  5. (摘自网络)范跑跑对话录
  6. 如何从0到1设计积分系统?
  7. 80%大数据交易涉及个人信息
  8. java.分页上一页下一页算法_一个方便的java分页算法
  9. 快速上手vue的登录界面(最新版)
  10. 2021年高压电工考试试卷及高压电工考试试题