©
本文档使用 PHP中文网手册 发布
本主题讨论使用Docker卷或绑定挂载时可能发生的错误。
Error: Unable to remove filesystem
一些基于容器的实用程序,如Google cAdvisor,挂载Docker系统目录,如/var/lib/docker/
,装进一个容器里。例如,cadvisor
命令您运行cadvisor
集装箱如下:
$ sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
当你绑定-安装/var/lib/docker/
,这有效地将所有其他正在运行的容器的所有资源挂载为装入的容器中的文件系统。/var/lib/docker/
当试图移除任何这些容器时,移除尝试可能会失败,错误如下:
Error: Unable to remove filesystem for74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515:remove /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm:Device or resource busy
如果绑定的容器挂载,则会出现问题。/var/lib/docker/
使用statfs
或fstatfs
中的文件系统句柄/var/lib/docker/
也不会关闭它们。
通常,我们建议不要装订。/var/lib/docker
用这种方式。然而,cAdvisor
需要这个绑定挂载来获取核心功能。
如果您不确定是哪个进程导致错误中提到的路径繁忙并阻止其被删除,则可以使用lsof
命令查找它的过程。例如,对于上面的错误:
$ sudo lsof /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm
若要解决此问题,请停止绑定安装的容器。/var/lib/docker
并再次尝试移除另一个容器。