在Docker中使用非虚拟文件夹作为音量组成



我正在配置一个docker撰写文件,以启动和集成多个服务。

version: '3'
services:
  db:
    ...
    volumes:
     - ./data/mariadb:/var/lib/mysql
    ...
  solr:
    ...
    volumes:
      - ./data/solr/:/opt/solr/server/solr/mycores
    ...

执行此操作时,所有内部文件夹都是在我运行的文件夹中创建的 docker-compose

问题1:此文件夹没有通用权限,Docker无法存储/写入所有信息,并且容器会丢弃错误。这些文件夹需要哪些权利(Windows,Linux(?

作为第二种方法,我使用了卷定义来创建数据存储。

version: '3'
services:
  db:
    ...
    volumes:
     - mariadb:/var/lib/mysql
    ...
  solr:
    ...
    volumes:
      - solr:/opt/solr/server/solr/mycores
    ...
volumes:
     mariadb:
     solr:

在此设置中,卷的数据文件夹是在虚拟机中创建的,并且容器可以在没有问题的情况下编写/读取所有数据。但是文件夹以某种方式隐藏在Windows的Hyper-V环境中。

问题2:我如何以本节中的方式定义命名卷,它们指向我物理驱动器上VM外的定义文件夹(Windows,linux(?

问题1:此文件夹没有通用权限,Docker无法存储/写入所有信息,并且容器会丢弃错误。这些文件夹需要哪些权利(Windows,Linux(?

主机上的目录需要设置的权限位,以便容器内的用户可以写入其中。由于不同的/etc/passWD和/etc/group文件,容器内和主机中用户名和组名称的映射可能有所不同。因此

问题2:我如何以本节的方式定义命名卷,以指向我的物理驱动器上的VM外的定义文件夹(Windows,Linux(?

,如果您不使用名为卷,则没有解决主机目录上的权限的解决方案。命名量没有此问题的唯一原因是因为它们被图像的权限和所有权(以及目录内容(初始化,当它们空着或创建并附加到容器上时。主机量(又称绑定安装座(没有此初始化功能。

如果您需要引用特定用例的卷,而不是用路径来引用卷,则有一个称为local Persist的插件可以解决您的问题。我还没有遇到需要这种情况的场景,所以我没有关于它的工作方式的反馈。

相关内容

最新更新