iT邦幫忙

1

docker的volume,是放在哪個資料夾

  • 分享至 

  • xImage

大家好,
我最近在練習docker,
對於volume有個疑問。

我的環境是windows7。
我想將d槽的test資料夾,放到container裡使用。
該怎麼做呢?

我試了

xxxxxx@emmanuel MINGW64 /c/Program Files/Docker Toolbox

#測試一
$ docker run --name web -it -d -v /d/test:/test/data -p 8080:80 httpd

也試了cd 到 d槽的test資料夾裡

xxxxxx@emmanuel MINGW64 /d/test

#測試二
$ docker run --name web -it -d -v /d/test:/test/data -p 8080:80 httpd

#測試三
$ docker run --name web -it -d -v `pwd`:/test/data -p 8080:80 httpd

#測試四
$ docker run --name web -it -d -v $(pwd):/test/data -p 8080:80 httpd

都沒辦法將d槽test資料夾的檔案,放到container裡面
/images/emoticon/emoticon06.gif

我想再請問一個問題,
如果我創建了一個volume : docker volume create volumedata

//volumedata
{
    "CreatedAt": "2022-07-06T02:30:02Z",
    "Driver": "local",
    "Labels": {},
    "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/volumedata/_data",
    "Name": "volumedata",
    "Options": {},
    "Scope": "local",
    "CreatedTime": 1657074602000,
    "Containers": {}
}

要怎麼將d槽test資料夾,放到volumedata裡面呢?

froce iT邦大師 1 級 ‧ 2022-07-06 13:30:56 檢舉
直接用windows的路徑就行了。
-v d:\test:/test/data

docker目前已經改掉不需要轉換成unix路徑
greenriver iT邦研究生 4 級 ‧ 2022-07-06 13:42:25 檢舉
不行耶,我輸入`docker run -itd --name=web -v D:\test\data:/test/data -p 8000:80 httpd`,出現錯誤`invalid mode : /test/data.`
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
w4560000
iT邦研究生 5 級 ‧ 2022-07-06 17:36:29
最佳解答

這樣試試看

直接指定 volume 路徑

docker run --name web -it -d -v //d/test:/test/data -p 8080:80 httpd

建立 volume 綁定路徑

docker volume create --name my_test_volume --opt type=none --opt device=//d/test --opt o=bind

docker run --name web2 -it -d -v my_test_volume:/test/data -p 8081:80 httpd
greenriver iT邦研究生 4 級 ‧ 2022-07-07 09:59:25 檢舉

謝謝,還是沒辦法耶。
不過發現一件事,docker run --name web2 -it -d -v my_test_volume:/test/data -p 8081:80 httpd後,docker exec進到container的/test/data裡面,新增isDocker.txt。
之後刪掉volume跟container,
再重建一個container並綁定//d/test,isDocker.txt還是存在耶。
再想是不是//d/test的資料夾,是存在虛擬機(Oracle VM VirtualBox)的d槽裡?

0
ronrun
iT邦新手 4 級 ‧ 2022-07-06 15:27:12

你 docker 裡面的根目錄是否有 test 資料夾?是否因為上層資料夾不存在導致無法掛載。

greenriver iT邦研究生 4 級 ‧ 2022-07-06 16:40:25 檢舉

如果將D:\test\data改成volume名稱,是OK的。docker根目錄會自動生成test資料夾。 不過我卡在不知道要怎麼將d槽的test資料夾綁定上去。/images/emoticon/emoticon67.gif

我要發表回答

立即登入回答