而主機路徑可以直接用絕對路徑的寫法,像 "-v D:\abc:/var/www/html"...
但,這方式在 docker-compose.yml 的 volumns 中這樣寫雖然不會報錯,但容器路徑 /var/www/html 卻會是空的,我假設 docker-compose.yml 中是這樣寫的(容器路徑我是假設的)
volumns:
- "D:\abc:/var/www/html"
- "./def:/var/www/html2"
"./def" 是以 docker-compose.yml 這個檔案的路徑開始中的 def 資料匣
我假定在 D:\abc 和 def 中都放了一個 index.html,在 container 啟動後,實際到 /var/www/html 路徑下查看,會發現是空的…而到 /var/www/html2 中查看則會有看到 index.html
在下試過很多寫法,但好像都無法掛載不是跟 docker-compose.yml 同路徑的其他路徑…但後來在 google 搜尋之後,發現了狀況,要掛載非 docker-compose.yml 同路徑的其他路徑,除了要寫絕對路徑的寫法外,寫法要改成
//{Disk drive}/path
例如: D:\abc 的掛載就要寫成
- "//d/abc:/var/www/html"
如此就能正常掛載到想要的外部路徑
註: 我自己後來把 docker desktop 在「用/不用 WSL」切換來切換去,有發現似乎「//d/abc」的這個方式是在「用 WSL」的情境下才有支援,「不用 WSL」的情境下還是要使用「D:\abc」的寫法,供大家參考
沒有留言:
張貼留言