我想从我的主机挂载一个目录到一个 Docker 容器,我想在容器内部做一些修改。但是,当我修改挂载点上的内容时,更改也会反射(reflect)在主机上。
例如:
$ docker run -d --name webserver01 -v /home/guest/app:/app
之后我在/app 中的容器内进行了一些更改
$ docker exec -ti webserver01 'touch /app/test.txt'
文件 test.txt 是在我的主机和容器内创建的(这个想法是只在容器内创建文件)
我尝试使用标志
nocopy
但我有这个错误:$ docker run -d --name webserver01 -v /home/guest/app:/app:nocopy
docker: Error response from daemon: Invalid bind mount spec "/home/guest/app:/app:nocopy": invalid mode: nocopy.
docker 版本
$ docker --version
Docker version 1.11.1, build 5604cbe/1.11.1
谢谢您的帮助!
最佳答案
可能有一些方法可以隐藏文件,但是对于 Docker 卷,您描述的内容是不可能的,因为容器上的目录是主机上目录的安装,而不是正在复制的文件。nocopy
修饰符用于当您创建卷并且数据已存在于容器的路径中时,您可以指定是否要在创建卷时复制该数据。
您可能需要设计一个卷结构,以便您创建的文件不在共享卷上。
关于Docker 和卷 nocopy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38287388/