首页 > 解决方案 > Docker挂载未将文件放入主机目录

问题描述

我在我的容器上创建了一个挂载,它将服务器上的物理路径映射到 docker 容器内的路径。但是,当文件放在容器路径中时,这些文件不会出现在服务器路径上(反之亦然)

这是我的 docker run cmd:

docker run -d -p 127.0.0.1:7001:5000 --name myContainer myContainer -v /var/www/Images:/app/wwwroot/

服务器正在运行 CentOS。我在这个 docker 容器中运行的应用程序将app/wwwroot文件放在其容器内的文件夹中。我希望这些文件也出现在服务器/var/www/Images文件夹中,但它们没有。

任何想法为什么?

谢谢

标签: dockercentos

解决方案


我希望这些文件也会出现在服务器 /var/www/Images 文件夹中,但它们没有。

您映射挂载的目录或路径/app/wwwroot将被主机文件覆盖(隐藏),因为-v选项告诉 docker 我将使用主机文件覆盖 Docker 内的任何内容。

当您使用绑定挂载时,主机上的文件或目录会挂载到容器中。文件或目录由其在主机上的完整路径或相对路径引用。

绑定安装

或者,如果您希望从容器中复制,那么一种方法是启动容器

docker run -it --rm --name test my_container

然后从容器中复制文件

docker cp my_container:/app/wwwroot/  /var/www/Images

现在绑定你在/var/www/Images.


推荐阅读