我们可以在docker中挂载一个命名卷的子目录吗?
docker-compose文件https://docs.docker.com/compose/compose-file/#/volumes-volume-driver显示了相对于撰写文件装载主机子目录的各种方法。
例如:
卷:#只需指定一个path,让引擎创build一个卷 – / var / lib / mysql
#指定绝对path映射 – / opt / data:/ var / lib / mysql
#主机上的相对于Compose文件的path – ./cache:/tmp/cache
#用户相对path – 〜/ configs:/ etc / configs /:ro
#命名卷 – datavolume:/ var / lib / mysql
是否可以在指定位置挂载指定卷的子目录? 例如下面的东西,我试过了,但似乎没有工作。
# Named volume - datavolume/sql_data:/var/lib/mysql
我假设我可以通过将数据卷挂载到/data
等位置,然后在每个容器的Docker文件夹中创build从子目录到位置的符号链接。
例如在docker-compose.yml文件中
volumes: - datavolume:/data
然后在容器Dockerfile中
RUN ln -s /data/sql_data /var/lib/mysql
我开始沿着这条路走下去,但是它变得混乱,并没有工作。 在放弃这种方法或投入时间debugging之前,我想确保没有办法指定命名卷的子目录。
否,因为compose/config/config.py#load(config_details)
检查datavolume/sql_data
与命名卷匹配(在compose/config/validation.py#match_named_volumes()
)
datavolume
会, datavolume/sql_data
不会。