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