cannot mount volume over existing file, file exists

I'm trying to build a data container for my application in Docker. I run this command to expose some volumes:

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

The problem is that i get this error from this command:

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

If I understand the Docker documentation correctly. Creating volumes for single files is supported. So I don't understand why I get this error.

Is there somebody who can explain this to me? I'm running Docker 1.9.1 on Ubuntu 14.04.


You shoud use

-v /etc/environment:/etc/environment

instead of

-v /etc/environment

The former maps container volume to the host volume. The latter tries to create a new volume at /etc/environment and fails since this directory already exists


I guess because you are not mounting a file but instead declaring a mount. Try this notation instead: -v <full path to a file you want to overwrite the target with>:/etc/environment


Suppose you are under Linux, run the following code

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

Here is some detail:

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

Since the mount function will 'cover' the directory in your image, your should always make a new directory under your images root directory.

Visit official documentation Use bind mounts to get more information.

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

上一篇: 实体框架刷新数据

下一篇: 无法在现有文件上挂载卷,文件存在