啟動容器的時候使用-v 指定本地檔案掛載到容器里面,導致容器中該目錄底下所有檔案全部丟失,個人感覺應該是檔案夾覆寫了,求助大神該如何解決,下面貼上啟動代碼
docker run --name bank -d -p 8996:8080 -v /home/bank_home/bank.json:/usr/local/tomcat/webapps/bank/WEB-INF/classes/ bank:1.0.4

下圖為該容器正常啟動后目錄
docker run --name bank -d -p 8996:8080 bank:1.0.4

uj5u.com熱心網友回復:
你好,你執行錯誤命令導致的。你寫的是檔案掛在到目錄,這個是錯誤的,應該是目錄掛在到目錄,命令:docker run --name bank -d -p 8996:8080 -v /home/bank_home/:/usr/local/tomcat/webapps/bank/WEB-INF/classes/ bank:1.0.4,在你的命令里去掉bank.json。謝謝uj5u.com熱心網友回復:
首先,-v 卷的映射,相當于主機的目錄掛載到容器對應目錄上,類似于我們主機磁區檔案系統的掛載,會覆寫容器中原目錄的檔案;然后,你上邊的問題是由于掛載時,命令中路徑的錯誤,把bank.json去掉,注意是路徑的映射,不是檔案。正確命令:docker run --name bank -d -p 8996:8080 -v /home/bank_home/:/usr/local/tomcat/webapps/bank/WEB-INF/classes/ bank:1.0.4
uj5u.com熱心網友回復:
把bank.json去掉uj5u.com熱心網友回復:
感覺不是你們說的這個問題,這種方法我之前也試過,最后找到原因,docker啟動的時候是先掛載目錄然后啟動tomcat,掛載的時候自動創建了bank目錄,然后啟動tomcat的時候解壓bank.war,因為存在了相同了目錄,就無法正常解壓了uj5u.com熱心網友回復:
docker啟動的時候是先掛載目錄然后啟動tomcat,掛載的時候自動創建了bank目錄,然后啟動tomcat的時候解壓bank.war,因為存在了相同了目錄,就無法正常解壓了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/44169.html
標籤:Docker
上一篇:TOMCAT資源池的實作方式
