Jum*_*mpa 0 docker docker-compose docker-volume
在 docker compose v3 中混合使用和不使用本地主机路径的命名卷的正确方法是什么?这样我就收到 YML 错误:
volumes:
/mnt/volume-part1:/volume
conf:
vhost:
html:
certs:
Run Code Online (Sandbox Code Playgroud)
然后我想参考容器内的体积......
对于命名卷,您需要在 compose 文件中的专用卷部分下声明卷名称。对于挂载,您无需在该部分中声明它:请考虑以下撰写文件:
version: "3"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
- /mnt/volume-part1:/volume
volumes:
data-volume:
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,命名卷data-volume需要在分配给容器之前在卷部分中声明。而目录挂载则是直接挂载到容器上。
更新
如果您不想在所有容器上复制机器路径,您可以使用一个巧妙的技巧来指定命名卷的确切创建位置,如下所示:
version: "3"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
- volume-part1:/volume
volumes:
data-volume:
volume-part1:
driver_opts:
type: none
device: /mnt/volume-part1
o: bind
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,我们创建了一个命名卷volume-part1并指定了该卷在主机上的备份位置。
| 归档时间: |
|
| 查看次数: |
1638 次 |
| 最近记录: |