問題背景
docker run -d --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
- 使用上述命令創建了個容器,並將容器的目錄映射到主機的目錄
- docker exec 進入容器的 CLI 模式
- 查看容器內服務是否啟動,發現是啟動的
- 查看 tomcat 目錄下的文件夾
- 想刪除 webapps 文件夾,但是報了下面的錯誤

rm: cannot remove 'webapps': Device or resource busy
問題排查
- 無論服務是否啟動都會有這個問題
- 當 docker run 沒有指定 -v 參數,即沒有映射目錄時沒有這個問題
- 如果要刪除非映射目錄 /usr/local/tomcat/webapps 的其他目錄是沒有這個問題
- 最終答案:因為目錄映射了,所以這個目錄不能刪除
解決問題
- 經過我多次嘗試,若想操作映射的目錄,只能進入該文件夾,再去操作所有文件,比如手動刪除、移動所有文件
- 或者重新配置映射目錄
- 或者看下這篇文章:
