我想将主机数据卷安装到docker.但是容器应该对其具有读写权限,与此同时,对数据卷的任何更改都不应影响主机中的数据.
我可以想象一个将多个数据卷装载到单个文件夹的解决方案,一个是只读的,另一个是读写的.但是在我的命令中只有第二个“ -v”有效,
docker run -ti --name build_cent1 -v /codebase/:/code:ro -v /temp:/code:rw centos6:1.0 bash
最佳答案
通常,在这种情况下,我认为您将文件夹添加到Docker映像中,以便任何运行该文件夹的容器都将其包含在其(可写)文件系统中,但写入将进入另一个层.
您需要在要使用的文件夹上方的文件夹中编写一个Dockerfile,该文件夹应如下所示:
FROM my/image
ADD codebase /codebase
然后使用docker build -t some-name< path>来构建容器.这些步骤可以添加到应用程序的构建脚本中(也许您会在此找到一些插件来提供帮助).然后,您可以docker运行some-name.
缺点是只能做一个副本并创建映像,但是如果您启动许多容器,它们将以只读方式共享该层的同一副本,并将它们自己的修改写入上面的独立层.