我遇到了一個奇怪的問題:我從一個主機到RW模式的容器掛載文件,然後我編輯此文件主機但它沒有在容器中更新。主機和內部容器上的相同文件是不同的,它不是與其原來的同步
這是從docker inspect <container>
的輸出的提取物:
"Mounts": [
...
{
"Type": "bind",
"Source": "/home/a_user/projects/drupal/d8-default/composer.json",
"Destination": "/var/www/d8-default/composer.json",
"Mode": "rw",
"RW": true,
"Propagation": ""
},
...
]
您可能看到,該文件被安裝爲讀寫模式作爲一個單獨的安裝。現在,當我在主機上編輯它時,它不會在容器中更改。我通過登錄容器並在其外部進行簡單的cat composer.json
來看到這一點。
我和隨機文件進行額外的測試,這裏是我發現:
如果正在編輯位於一個目錄(安裝在RW模式)的文件,然後更改立即出現在其容器的副本。
如果一個文件被直接掛載,那麼根本不會傳輸更改,看起來容器似乎正在維護它自己的文件版本!
事實上,這是非常不受歡迎的行爲,它打破了我的工作流程,我還沒有找到克服這種不一致的解決方案。歡迎任何建議。
是的,謝謝。我也發現這個討論:https://unix.stackexchange.com/questions/44373/single-bind-mounted-file-gets-out-of-sync-in-linux 我的解決方法是停止使用file-我一直在重新構建我的項目的結構以僅使用目錄裝載。 – Onkeltem