我们可以在Docker中挂载命名卷的子目录吗?
docker-compose文件https://docs.docker.com/compose/compose-file/#/volumes-
volume-driver显示了相对于compose文件安装主机子目录的各种方法。
例如:
volumes:#只需指定一个路径,然后让Engine创建一个体积-/ var / lib / mysql
#指定绝对路径映射-/ opt / data:/ var / lib / mysql
#主机上相对于Compose文件的路径-./cache:/tmp/cache
#用户相对路径-〜/ configs:/ etc / configs /:ro
#命名卷-datavolume:/ var / lib / mysql
是否可以在指定位置挂载命名卷的子目录?例如我尝试过的以下内容,但似乎无法正常工作。
# Named volume - datavolume/sql_data:/var/lib/mysql
我假设我可以通过将数据卷装入类似的位置来进行管理/data
,然后在每个容器的Dockerfiles中创建从子目录到这些位置的符号链接。
例如在docker-compose.yml文件中
volumes: - datavolume:/data
然后在容器Dockerfile中
RUN ln -s /data/sql_data /var/lib/mysql
我开始沿着这条路走,但它变得凌乱,无法正常工作。在我放弃该方法或花费时间进行调试之前,我想确保没有办法仅指定已命名卷的子目录。
回答:
否,因为compose/config/config.py#load(config_details)
检查是否datavolume/sql_data
与命名的卷相匹配(在中compose/config/validation.py#match_named_volumes()
)
datavolume
会,datavolume/sql_data
不会。
正如memetech在评论中指出的那样,这是自2017年4月以来跟踪此问题的问题:
moby/moby
问题32582:“
”。
以上是 我们可以在Docker中挂载命名卷的子目录吗? 的全部内容, 来源链接: utcz.com/qa/415505.html