docker掛載單文件問題


轉載自https://www.cnblogs.com/ZYTZ/p/13047948.html

關於docker中文件夾掛載成功 但是單文件掛載卻沒有生效的問題

因為用vim修改這里會有一個坑

docker -v mount 的機制:

-v mount 文件(或文件夾)時,docker 記錄的是該文件的 inode,並用 inode 追蹤。當用 vim 編輯了文件后,這個文件的 inode 就變了,也就是說這個 default.conf 文件已經不是運行 docker run 時的那個 default.conf 文件了,容器中自然也就沒了新的改動。 同時該 issue 的 opener 使用的是 sed -i 修改,也會使 inode 發生變化,sed -i 的機制是創建一個新的臨時文件,修改完后在重命名。對此,官方的建議是掛載文件夾,而不是文件。
https://github.com/moby/moby/issues/6011
上面這段參考:https://www.dazhuanlan.com/2020/01/02/5e0d7cfd57df8/

經測試發現,

  1. 我掛載單文件的nginx的container,沒重啟之前修改掛載的單文件沒有生效,但重啟之后修改的配置文件確實會更新,對於nginx來說配置更新本身就需要重啟,所以掛載文件其實也可以。
  2. 但對於那些需要修改單文件但又想不重啟container, 就可以實現更新的情況可以考慮掛載文件夾。我這里改為掛載文件夾


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM