我试图将应用程序中的运行时数据外部化,以便保存在OpenMediaVault共享文件夹中。我能够创建共享文件夹并配置NFS,或者至少我认为是这样。我在OMV/Services/NFS/Shares中看到的配置是:
Shared folder: NasFolder[on /dev/sda1, nas/]
Client: 192.168.50.0/24
Privelage: Read/Write
Extra options: subtree_check,insecure现在,在这个共享文件夹中,我有了这个结构(我使用windows /CIFS配置检查了它)
\\nfs-ip\NasFolder
|- mysql
| \- some my sql folders...
|- TEST.txt我想使用这个mysql文件夹来存储MariaDB运行时数据(我知道名字被搞砸了,我正在迁移到Maria.)。meaby还为其他服务创建了一些其他文件夹。这是我来自docker-compose.yml的配置
version: '3.2'
services:
mysqldb:
image: arm64v8/mariadb:latest
ports:
- 3306:3306
restart: on-failure:3
volumes:
- type: volume
source: nfs-volume
target: /mysql
volume:
nocopy: true
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
command: --character-set-server=utf8 --collation-server=utf8_general_ci
volumes:
nfs-volume:
driver: local
driver_opts:
type: "nfs"
o: addr=192.168.50.70,nolock,soft,rw
device: ":/NasFolder"现在,当我在我的管理器节点上运行docker stack deploy -c docker-compose.yml --with-registry-auth maprealm时,在maprealm_mysqldb.1上会出现如下所示的错误:
"Err": "starting container failed: error while mounting volume '/var/lib/docker/volumes/maprealm_nfs-volume/_data': failed to mount local volume: mount :/NasFolder:/var/lib/docker/volumes/maprealm_nfs-volume/_data, data: addr=192.168.50.70,nolock,soft: permission denied",我对整合的东西很陌生。这是我的主服务器,我只是找不到好的教程“通过我的厚头骨”如何配置那些NFS路径和权限,或至少我如何调试它,除了得到这个错误。我知道volumes.nfs-volume.driver_opts.device应该是一条路径,但我不知道它应该是什么路径。我试图从这里调整配置:https://gist.github.com/ruanbekker/4a9c0d250bce9f84482f2a788ce92131
( Edit1)很少有其他细节:
一部分的红葡萄酒机器上。
发布于 2022-02-16 14:02:12
好的,如果有人在寻找解决方案:
默认情况下,
/export/,因此需要更新卷。我需要更新mysql的卷,并更新volumes.mysql-volume.driver_opts.device以包含/export/前缀,我还向mysql文件夹添加了path,使其仅用于mysqldb服务:volumes:
mysql-volume:
driver: local
driver_opts:
type: "nfs"
o: addr=192.168.50.70,nolock,soft,rw
device: ":/export/NasFolder/mysql"在这些更改之后,需要更新mysql/mariadb:上的卷配置
mysqldb:
image: arm64v8/mariadb:latest
ports:
- 3306:3306
restart: on-failure:3
volumes:
- type: volume
source: mysql-volume
target: /var/lib/mysql
volume:
nocopy: true
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
command: --character-set-server=utf8 --collation-server=utf8_general_cimysqldb.volumes.source指向步骤1中定义的卷的名称-- mysql-volume mysqldb.volumes.target是存储容器运行时数据的地方。在mysql/mariadb数据库中,运行时数据存储在/var/lib/mysql中,因此您需要指出这一点,并且只能使用完整路径。
由于我使用了默认的OMV配置,所以
OMV/Services/NFS/Shares更新为:Shared folder: NasFolder[on /dev/sda1, nas/]
#here you can see note 'The location of the files to share. The share will be accessible at /export/.'
Client: 192.168.50.0/24
Privelage: Read/Write
Extra options: rw,sync,no_root_squash,anonuid=1000,anongid=1000,no_aclhttps://stackoverflow.com/questions/71133611
复制相似问题