Docker - 解决在容器内删除和主机映射的目录而报错 rm: cannot remove 'webapps': Device or resource busy 的问题
问题背景
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 的其他目录是没有这个问题
- 最终答案:因为目录映射了,所以这个目录不能删除
解决问题
- 经过我多次尝试,若想操作映射的目录,只能进入该文件夹,再去操作所有文件,比如手动删除、移动所有文件
- 或者重新配置映射目录
- 或者看下这篇文章: