Docker命名卷

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

在docker compose v3中,混合使用命名卷和不使用本地主机路径的正确方法是什么? 这样我就得到了YML错误:

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附加到特定的容器,或者为每个需要它的容器复制它。是这样吗?我问它,因为我想避免这样硬编码主机路径…非常感谢,只是好奇:数据卷在最后一个卷部分中没有:,这正常吗?缺少