我正在尝试将我的应用程序中的运行时数据外部化,以保存在 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 SMB/CIFS 配置检查了它)
\\nfs-ip\NasFolder
|- mysql
| \- some my sql folders...
|- TEST.txt
我想使用这个mysql文件夹来存储 MariaDB 运行时数据(我知道名字搞砸了,我正在迁移到 Maria...)。并为其他服务创建一些其他文件夹。这是我的配置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
编辑1)一些额外的细节:
- Docker swarm 有 3 个节点,只有一个节点是具有可用性暂停的管理器。
- OMV 在不属于集群的独立机器上运行