問題背景
docker run -d --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
- 使用上述指令建立了個容器,并将容器的目錄映射到主機的目錄
- docker exec 進入容器的 CLI 模式
- 檢視容器内服務是否啟動,發現是啟動的
- 檢視 tomcat 目錄下的檔案夾
- 想删除 webapps 檔案夾,但是報了下面的錯誤
Docker - 解決在容器内删除和主機映射的目錄而報錯 rm: cannot remove 'webapps': Device or resource busy 的問題 rm: cannot remove 'webapps': Device or resource busy
問題排查
- 無論服務是否啟動都會有這個問題
- 當 docker run 沒有指定 -v 參數,即沒有映射目錄時沒有這個問題
- 如果要删除非映射目錄 /usr/local/tomcat/webapps 的其他目錄是沒有這個問題
- 最終答案:因為目錄映射了,是以這個目錄不能删除
解決問題
- 經過我多次嘗試,若想操作映射的目錄,隻能進入該檔案夾,再去操作所有檔案,比如手動删除、移動所有檔案
- 或者重新配置映射目錄
- 或者看下這篇文章: