?
This document uses PHP Chinese website manual Release
本主題討論使用Docker卷或綁定掛載時(shí)可能發(fā)生的錯(cuò)誤。
Error: Unable to remove filesystem
一些基于容器的實(shí)用程序,如Google cAdvisor,掛載Docker系統(tǒng)目錄,如/var/lib/docker/
,裝進(jìn)一個(gè)容器里。例如,cadvisor
命令您運(yùn)行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
當(dāng)你綁定-安裝/var/lib/docker/
,這有效地將所有其他正在運(yùn)行的容器的所有資源掛載為裝入的容器中的文件系統(tǒng)。/var/lib/docker/
當(dāng)試圖移除任何這些容器時(shí),移除嘗試可能會(huì)失敗,錯(cuò)誤如下:
Error: Unable to remove filesystem for74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515:remove /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm:Device or resource busy
如果綁定的容器掛載,則會(huì)出現(xiàn)問題。/var/lib/docker/
使用statfs
或fstatfs
中的文件系統(tǒng)句柄/var/lib/docker/
也不會(huì)關(guān)閉它們。
通常,我們建議不要裝訂。/var/lib/docker
用這種方式。然而,cAdvisor
需要這個(gè)綁定掛載來獲取核心功能。
如果您不確定是哪個(gè)進(jìn)程導(dǎo)致錯(cuò)誤中提到的路徑繁忙并阻止其被刪除,則可以使用lsof
命令查找它的過程。例如,對(duì)于上面的錯(cuò)誤:
$ sudo lsof /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm
若要解決此問題,請(qǐng)停止綁定安裝的容器。/var/lib/docker
并再次嘗試移除另一個(gè)容器。