[英]Mount Docker volume on Windows host with Linux containers in docker-compose.yml
[英]Mount OpenMediaVault NFS in docker-compose.yml volume for Docker Swarm
我正在嘗試將我的運行時數據從我的應用程序外部化以保存在 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)一些額外的細節:
好的,如果有人正在尋找解決方案:
/export/
,因此需要更新卷。 我需要更新 mysql 的卷並更新 volumes.mysql volumes.mysql-volume.driver_opts.device
volume.driver_opts.device 以包含該/export/
前綴,我還添加了mysql
文件夾的路徑以使卷僅供mysqldb
服務使用:volumes:
mysql-volume:
driver: local
driver_opts:
type: "nfs"
o: addr=192.168.50.70,nolock,soft,rw
device: ":/export/NasFolder/mysql"
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_ci
mysqldb.volumes.source
指向您在步驟 1 中定義的卷的名稱 - mysql-volume
mysqldb.volumes.target
是存儲內部容器運行時數據的地方。 在 mysql/mariadb 數據庫中,運行時數據存儲在/var/lib/mysql
中,因此您想要指向它並且只能使用完整路徑。
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_acl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.