摘要:準(zhǔn)備工作在的文件夾下新建文件夾,命名為,這個(gè)就是我們想掛載的文件夾。試試看絕對(duì)路徑獲得如下錯(cuò)誤錯(cuò)誤看上去差不多,文件路徑識(shí)別的問題。錯(cuò)誤分析既然是在下使用命令,而正常的或者不能正確運(yùn)行。的高分解答表示,在前加可以實(shí)現(xiàn)跳過的書寫轉(zhuǎn)義規(guī)定。
版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處。準(zhǔn)備工作
在windows的user文件夾下新建文件夾,命名為DockerPackages,這個(gè)就是我們想掛載的文件夾。
錯(cuò)誤重現(xiàn)測(cè)試環(huán)境:
docker 版本: 18.09.0
windows 版本:win10,用HyperV
命令行工具:git-bash git version 2.19.1.windows.1
使用下列方式mount volume,會(huì)出現(xiàn)問題
使用HOME
winpty docker run -itv ~/DockerPackages:/mnt/packages centos:7
獲得如下錯(cuò)誤:
C:/Program Files/Docker/Docker/Resources/bin/docker.exe: Error response from daemon: Mount denied:
The source path "C:/Users/cb/DockerPackages;C" doesn"t exist and is not known to Docker.
See "C:/Program Files/Docker/Docker/Resources/bin/docker.exe run --help".
看上去貌似windows下文件路徑?jīng)]有被準(zhǔn)確識(shí)別,我們?cè)囋嚳唇^對(duì)路徑。
試試看絕對(duì)路徑
winpty docker run -itv /c/Users/cb/DockerPackages:/mnt/packages centos:7
獲得如下錯(cuò)誤:
C:/Program Files/Docker/Docker/Resources/bin/docker.exe: Error response from daemon: Mount denied:
The source path "C:/Users/cb/DockerPackages;C"
doesn"t exist and is not known to Docker.
See "C:/Program Files/Docker/Docker/Resources/bin/docker.exe run --help".
錯(cuò)誤看上去差不多,文件路徑識(shí)別的問題。windows下linux工具的使用,路徑一直就是個(gè)問題。
錯(cuò)誤分析既然是在git bash下使用linux命令,而正常的~/或者/C/folderPath/不能正確運(yùn)行。眼尖的朋友們可能已經(jīng)看出端倪了:source path是C:/Users/cb/DockerPackages;C。這個(gè);C在末尾是什么?我們的輸入不是這樣的不是么?
google一下,stackoverflow也有人提出了類似問題:
Docker mounted volume adds ;C to end of windows path when translating from linux style path
有興趣可以自己看一下。大意就是,MinGW會(huì)把MSYS program的參數(shù)自動(dòng)轉(zhuǎn)換成Window programm,注意其中的一條:
x:/x x;x;C:MinGWmsys1.0x
這條看上去有些可疑,因?yàn)槲覀円灿昧祟愃频膶懛?:/mnt
解決錯(cuò)誤既然是git-bash嘗試補(bǔ)全造成的問題,那就想辦法不要補(bǔ)齊或者強(qiáng)制轉(zhuǎn)義。stackoverflow的高分解答表示,在path前加/可以實(shí)現(xiàn)跳過path的書寫轉(zhuǎn)義規(guī)定。那我們來試試看。
錯(cuò)誤重現(xiàn)中的第二點(diǎn),也是用/開始的,顯然不對(duì)。那我們?cè)谇懊嬖偌右粋€(gè)/
winpty docker run -itv //c/Users/cb/DockerPackages:/mnt/packages centos:7
問題解決。這個(gè)方案我個(gè)人感覺是最好的。
試試別的解決方案綜合了Posix path conversion以及stackoverflow的答案,嘗試以下的方案也是可以的:
winpty docker run -itv "/C:/Users/cb/DockerPackages":/mnt/packages centos:7
winpty docker run -i -t -v "/C:userscbDockerPackages":/mnt/packages centos:7
winpty docker run -i -t -v "C:userscbDockerPackages":/mnt/packages centos:7
由此看來,開頭是不是用/不是很重要。而""是必須的。暫時(shí)沒有找到可以使用~的方案,如果有,請(qǐng)留言告訴我。
其次,在windows下使用路徑,在寫:/的時(shí)候要非常慎重,這個(gè)會(huì)被補(bǔ)全或者轉(zhuǎn)義,務(wù)必在最前面加上/。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/27624.html
摘要:反過來別的上的鏡像,也不能在樹莓派上運(yùn)行。如果需要找樹莓派專用的鏡像,那就在上搜索或相關(guān)就能找到了。有一個(gè)叫的倉(cāng)庫(kù)制作了非常多樹莓派專用,可以參考下。樹莓派安裝,最難的在于正確的選擇源和添加,才能找到版本適合的并下載。 最近學(xué)習(xí)Machine Learning發(fā)現(xiàn)好多人都用docker,之前一直聽說但是感覺和自己無(wú)關(guān)。但是現(xiàn)在發(fā)現(xiàn)原來docker是個(gè)這么方便的東西,可以跨平臺(tái)(不分什么...
摘要:文件掛載由于只會(huì)覆蓋單個(gè)文件而不會(huì)影響中同一文件夾下的其他文件,常常被用來掛載配置文件,以在運(yùn)行時(shí),動(dòng)態(tài)的修改默認(rèn)配置。 背景介紹 docker volume 可以使我們?cè)趩?dòng)docker容器時(shí),動(dòng)態(tài)的掛載一些文件(如配置文件), 以覆蓋鏡像中原有的文件,但是,掛載一個(gè)主機(jī)上尚不存在的文件夾或者文件到容器中會(huì)怎樣呢?LZ在工作中就遇到了這樣的問題,故自己實(shí)踐了一下,記錄實(shí)驗(yàn)結(jié)果如下: ...
摘要:先說結(jié)論,容器真的很好,很輕量級(jí),功能又很重量級(jí)。是的版本完成以后,這個(gè)的文件系統(tǒng)就是一個(gè)標(biāo)準(zhǔn)的的文件系統(tǒng)了,里面的基本工具一應(yīng)俱全。 容器,目前最火的話題了,在后端的開發(fā)中,容器的運(yùn)用也已經(jīng)是主流技術(shù)了,今天,我們就來說說容器技術(shù),之前我對(duì)這一塊的了解不是很多,但是最近有些特殊原因轉(zhuǎn)成運(yùn)維工程師了,而公司的全線服務(wù)都是docker的,以一個(gè)開發(fā)人員的習(xí)慣,轉(zhuǎn)成運(yùn)維以后,還是想對(duì)這種東...
閱讀 2434·2021-09-30 09:47
閱讀 2286·2021-09-26 09:55
閱讀 3014·2021-09-24 10:27
閱讀 1613·2019-08-27 10:54
閱讀 1010·2019-08-26 13:40
閱讀 2543·2019-08-26 13:24
閱讀 2536·2019-08-26 13:22
閱讀 1806·2019-08-23 18:38