前段时间,在内部的线上环境修复Kubernetes集群时,需要重启Docker Daemon,可以悲剧发生了,一重启就报错:device or resource busy。Google了好久,终于找到了类似的案例和解决方法。此时才知道,原来删除Docker容器,也可能会出现这个问题。这里简单记录一下,原创详见“参考资料”。
原文给出的脚本:
1 2 3 4 5 6 7
#!/bin/bash
for i in $(curl -s --unix /var/run/docker.sock http://localhost/info | jq -r .DockerRootDir) /var/lib/docker /run /var/run; do for m in $(tac /proc/mounts | awk '{print $2}' | grep ^${i}/); do umount $m || true done done