by Devin Yang

建立於: 3年前 ( 更新: 3年前 )

在D-Laravel上的NFS掛載說明:
volumes:
  sites:
    driver: local
    driver_opts:
      type: nfs
      o: addr=host.docker.internal,rw,nolock,hard,nointr,nfsvers=3
      device: ":/Users/devin/dlaravel/sites"
在上方的device項目,我用的是sites的絕對路徑,這樣子,在console別名的狀態下才不會出問題。
您預設的設定的設定會像下方這樣:(代表了docker-compose的啟動要在D-Laravel的目錄上執行)
device: ":${PWD}/sites"
關於D-Laravel的NFS設定,您可以參看下方連結:
https://www.ccc.tc/notes/nfs-docker-and-laravel

記錄一些NFS上使用的參數

nolock
選擇是否使用NLM邊帶協議鎖定服務器上的文件。 如果未指定任何選項(或未指定鎖定),則NLM鎖定用於此安裝點。 使用nolock選項時,應用程序可以鎖定文件,但是這種鎖定僅對同一客戶端上運行的其他應用程序提供排除。 遠程應用程序不受這些鎖的影響。

使用NFS掛載/ var時,必須使用nolock選項禁用NLM鎖定,因為/ var包含Linux上NLM實現使用的文件。 在不支持NLM協議的NFS服務器上安裝導出時,也需要使用nolock選項。
soft/hard
確定NFS請求超時後NFS客戶端的恢復行為。 如果未指定任何選項(或未指定hard選項),則將無限期重試NFS請求。 如果指定了soft選項,則在發送重傳重傳後,NFS客戶端將使NFS請求失敗,從而導致NFS客戶端向調用應用程序返回錯誤。

注意:在某些情況下,所謂的“軟”超時可能會導致無聲數據損壞。 因此,僅當客戶端響應比數據完整性更重要時,才使用soft選項。 在TCP上使用NFS或增加retrans選項的值可以減輕使用soft選項的某些風險。
intr/nointr
選擇是否允許信號中斷此安裝點上的文件操作。 如果未指定任何選項(或未指定nointr),則信號不會中斷NFS文件操作。 如果指定了intr,則在進行中的NFS操作被信號中斷時,系統調用將返回EINTR。

其他太簡單了,用想的都猜的出來,rw就是可讀寫。nfsvers=3使用nfs3進行掛載,

Tags: docker nfs macos

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


docker

Docker image的封存及取回

如何封存docker的image成為tar檔,並且載回docker image。 我們可以用docker save及docker load進行。

MacOS

MacOS上重啟sshd服務

紀錄我如何在MacOS上重啟sshd服務。

docker,phpenv

用光了Docker IPv4 address pool問題解法

可能在舊版的docker環境,使用Docker compose啟動容器時,會碰過下方的錯誤:

 Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network這其實這是default-address-pools用光的症狀,有些環境,docker-compose預設會使用Class B的私有網路。172段的私有IP是有範圍的,從172.16.0.0到172.31.255.255。也就是說,當我們起動一個docker-compose的Project,就會吃掉一個Class B的私有段,非常豪邁,