无法在现有文件上挂载卷,文件存在

我试图在Docker中为我的应用程序构建一个数据容器。 我运行这个命令来公开一些卷:

docker run --name svenv.nl-data -v /etc/environment -v /etc/ssl/certs -v /var/lib/mysql -d svenv/svenv.nl-data

问题是我从这个命令得到这个错误:

Error response from daemon: cannot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/aefa66cf55357e2e1e4f84c2d4d2d03fa2375c8900fe3c0e1e6bc02f13e54d05/etc/environment

如果我正确理解Docker文档。 为单个文件创建卷是受支持的。 所以我不明白为什么我会得到这个错误。

有人可以向我解释这个吗? 我在Ubuntu 14.04上运行Docker 1.9.1。


你应该使用

-v /etc/environment:/etc/environment

代替

-v /etc/environment

前者将容器卷映射到主机卷。 后者试图在/ etc / environment创建一个新卷,并失败,因为该目录已经存在


我猜是因为你没有安装文件,而是声明了一个挂载。 请尝试使用这种符号: -v <full path to a file you want to overwrite the target with>:/etc/environment


假设你在Linux下,运行下面的代码

docker run -it --rm -v /local_dir:/image_root_dir/mount_dir image_name

这里有一些细节:

-it: interactive terminal 
--rm: remove container after exit the container
-v: volume or say mount your local directory to a volume

由于挂载功能会“覆盖”图片中的目录,因此您应该始终在图片根目录下创建一个新目录。

访问官方文档使用绑定挂载获取更多信息。

链接地址: http://www.djcxy.com/p/88947.html

上一篇: cannot mount volume over existing file, file exists

下一篇: How to count pymongo aggregation cursor without iterating