我尝试使用docker run挂载卷,但是我放错了文件夹。这是我执行的命令:
docker run --name my-apache -p 80:80 -d -v ~/home/myusername/html:/usr/local/apache2/htdocs/ httpd:2.4
请注意~
之前的/home/myusername
...我不应该将~
放在那里,因为它创建了/home/myusername/home/myusername/...
文件夹
我尝试通过以下方式删除该卷:
docker rm -f -v my-apache
,但无济于事。我在这台机器上没有须藤。我是否注定要拥有另一个无法删除的主文件夹?
答案 0 :(得分:0)
您可以作弊并利用以root用户身份运行的容器进程来获取root用户访问权限。
将~
挂载为像高山之类的普通容器内的卷。任何带有rm
的基本容器(例如alpine,debian或fedora)都可以。默认情况下,命令以root身份运行;容器内的rm -rf
可以删除任何内容。
docker run -it --rm -v ~:/home alpine rm -rf /home/home
请注意以root用户身份运行rm -rf
!通常没有危险,因为它只能删除容器内的东西。但是,如果从主机安装目录,则目录中的所有内容都是公平的游戏。