nPn*_*nPn 24 docker dockerfile docker-compose
docker-compose文件https://docs.docker.com/compose/compose-file/#/volumes-volume-driver显示了相对于撰写文件安装主机子目录的各种方法.
例如:
卷:#只需指定一个路径,让Engine创建一个卷 - /var/lib/mysql
#指定绝对路径映射 - /opt/data:/ var/lib/mysql
#主机上的路径,相对于Compose文件 - ./cache:/tmp/cache
#用户相对路径 - 〜/ configs:/ etc/configs /:ro
#Named volume - datavolume:/ var/lib/mysql
是否可以在特定位置安装命名卷的子目录?例如下面的东西,我试过,但似乎不起作用.
# Named volume
- datavolume/sql_data:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
我假设我可以通过将数据卷安装到类似位置/data然后在每个容器的Dockerfiles中来管理这个,创建从子目录到位置的符号链接.
例如,在docker-compose.yml文件中
volumes:
- datavolume:/data
Run Code Online (Sandbox Code Playgroud)
然后在容器Dockerfile中
RUN ln -s /data/sql_data /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
我开始沿着这条路走下去,但它变得凌乱而且无法正常工作.在我放弃这种方法或投入时间调试它之前,我想确保没有办法只指定命名vollume的子目录.
Von*_*onC 26
不,因为compose/config/config.py#load(config_details)检查是否datavolume/sql_data匹配命名卷(in compose/config/validation.py#match_named_volumes())
datavolume会,datavolume/sql_data不会.
正如memetech 在评论中指出的那样,自2017年4月以来跟踪此问题是一个问题:
moby/moby问题32582:" [feature]允许挂载命名卷的子目录 ".
| 归档时间: |
|
| 查看次数: |
11806 次 |
| 最近记录: |