世界上的第一条道路
docker run -v
选项始终在主机系统上。例如,如果你
docker run -v /etc:/x busybox cat /x/shadow
它会把垃圾倒出来
主持人的
加密的密码文件,无论您是直接从主机还是从容器运行此命令。
没有办法将任意目录从一个容器共享到另一个容器。如果启动容器知道自己的目录结构(特别是某个目录是从特定的主机路径或命名卷装入的),那么它可以将其复制到另一个容器,但这不是一般的答案。您看到的其他行为只是主机系统上不存在这些目录的结果。
总的来说,我建议
不
将Docker用于主要通过文件系统与外部世界交互的短期进程。取下你在另一个容器中运行的任何程序,将其安装到你的映像中
Dockerfile
,并直接运行它,而无需通过Docker。
如果你真的无法避免这种工作流程,我发现唯一可靠的方法就是
docker create
集装箱,
docker cp
存档,
docker start
它,和
docker wait
让它结束。完成后,
docker cp
结果之前就公布了
docker rm
信息技术这是一种艰苦的工作流程,但它解决了两个容器不共享任何文件系统空间的问题。