Docker命名卷
在docker compose v3中,混合使用命名卷和不使用本地主机路径的正确方法是什么? 这样我就得到了YML错误:Docker命名卷,docker,docker-compose,docker-volume,Docker,Docker Compose,Docker Volume,在docker compose v3中,混合使用命名卷和不使用本地主机路径的正确方法是什么? 这样我就得到了YML错误: volumes: /mnt/volume-part1:/volume conf: vhost: html: certs: 然后我想参考容器内的卷…对于命名卷,您需要在撰写文件的专用卷部分下声明卷名。对于装载,您不需要在该部分中声明: 考虑下面的撰写文件: version: "3" services: db: image: db vo
volumes:
/mnt/volume-part1:/volume
conf:
vhost:
html:
certs:
然后我想参考容器内的卷…对于命名卷,您需要在撰写文件的专用卷部分下声明卷名。对于装载,您不需要在该部分中声明: 考虑下面的撰写文件:
version: "3"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
- /mnt/volume-part1:/volume
volumes:
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
如上所示,我们创建了一个命名卷volume-part1
,并指定了该卷在主机上的备份位置。对于命名卷,您需要在撰写文件的专用卷部分下声明卷名。对于装载,您不需要在该部分中声明:
考虑下面的撰写文件:
version: "3"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
- /mnt/volume-part1:/volume
volumes:
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
正如您在上面看到的,我们创建了一个命名卷volume-part1
,并指定了在主机上备份此卷的位置。因此,我必须将mnt附加到特定的容器,或者为每个需要它的容器复制它。是这样吗?我问它,因为我想避免这样硬编码主机路径…非常感谢,只是好奇:数据卷在最后一个卷部分中没有:,这正常吗?缺少:
。因此我必须将mnt附加到特定的容器,或者为每个需要它的容器复制它。是这样吗?我问它,因为我想避免这样硬编码主机路径…非常感谢,只是好奇:数据卷在最后一个卷部分中没有:,这正常吗?缺少:
。