将数据卷挂载到docker并具有读写权限

Xia*_*kun 5 linux filesystems docker

我想将主机数据卷挂载到docker。但容器应该对其具有读写权限,同时数据卷的任何更改不应影响主机中的数据。

我可以想象一种将多个数据卷安装到单个文件夹的解决方案,一个是只读的,另一个是读写的。但只有第二个“-v”在我的命令中起作用,

docker run -ti --name build_cent1 -v /codebase/:/code:ro -v /temp:/code:rw centos6:1.0 bash
Run Code Online (Sandbox Code Playgroud)

Xia*_*kun 2

在github中得到 nixun 的一个答案。

你可以简单地使用overlayfs来解决这个问题:

mount -t overlay overlay \
    -olowerdir=/codebase,upperdir=/temp,workdir=/workdir /codebase_new
docker run -ti --name build_cent1 -v /codebase_new:/code:rw centos6:1.0 bash
Run Code Online (Sandbox Code Playgroud)

该方案具有良好的灵活性。使用共享文件夹创建映像是一个解决方案,但它无法轻松更新文件夹数据。