我正在開發一個 Web 應用程式,需要存取 QNAP NAS 的檔案系統,並在其中編輯與建立目錄和檔案。
為了將 NFS 掛載到 docker 容器,我使用了以下的 docker compose 檔案:
services:
app:
... # 其他不相關的設定
volumes:
- .:/app
- "nfs-base:/Z" # 將 nfs volume 掛載到容器的 /base 目錄
volumes:
nfs-base:
driver: local
driver_opts:
type: nfs
o: "nfsvers=4,addr=IPADDRESS_OF_THE_QNAP-NAS,rw"
device: ":/"
建立這個 volume 時沒有出錯,且檢查容器時,:/Z/base 目錄有被建立,這表示 QNAP 檔案系統的共享資料夾 base 已經正確掛載,或者至少 docker-compose 檔案有辨識到它。
問題在於,當我檢查容器內容,以確認 :/Z/base 內的檔案是否真的有被掛載時,
當我進入容器的 /base 目錄時,出現這個錯誤:bash: cd: base/base: Operation not permitted。
此外,在容器內檢查該資料夾的權限,會顯示:
drwxrwxrwx 28 1000 root 4096 May 10 09:04 base
我猜測是權限問題導致無法存取共享資料夾的內容,但我對 QNAP 不熟悉,不知道如何設定權限。
需要注意的是,若我在同一台有 docker 容器的主機上,直接用 ssh 連線到 QNAP-NAS 的 /base 目錄,是沒有任何權限問題的(可正常存取 base 目錄下所有檔案)。
請問我該如何授權 docker 容器能讀寫 NFS 掛載的目錄?
