国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker 排坑之旅(一):windows下不能掛載文件夾進container

awesome23 / 2253人閱讀

摘要:準備工作在的文件夾下新建文件夾,命名為,這個就是我們想掛載的文件夾。試試看絕對路徑獲得如下錯誤錯誤看上去差不多,文件路徑識別的問題。錯誤分析既然是在下使用命令,而正常的或者不能正確運行。的高分解答表示,在前加可以實現(xiàn)跳過的書寫轉(zhuǎn)義規(guī)定。

版權(quán)所有,轉(zhuǎn)載請注明出處。
準備工作

在windows的user文件夾下新建文件夾,命名為DockerPackages,這個就是我們想掛載的文件夾。

錯誤重現(xiàn)

測試環(huán)境:

docker 版本: 18.09.0  
windows 版本:win10,用HyperV
命令行工具:git-bash git version 2.19.1.windows.1

使用下列方式mount volume,會出現(xiàn)問題

使用HOME

winpty docker run -itv ~/DockerPackages:/mnt/packages centos:7

獲得如下錯誤:

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)]有被準確識別,我們試試看絕對路徑。

試試看絕對路徑

winpty docker run -itv /c/Users/cb/DockerPackages:/mnt/packages centos:7

獲得如下錯誤:

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下linux工具的使用,路徑一直就是個問題。

錯誤分析

既然是在git bash下使用linux命令,而正常的~/或者/C/folderPath/不能正確運行。眼尖的朋友們可能已經(jīng)看出端倪了:source path是C:/Users/cb/DockerPackages;C。這個;C在末尾是什么?我們的輸入不是這樣的不是么?

google一下,stackoverflow也有人提出了類似問題:

Docker mounted volume adds ;C to end of windows path when translating from linux style path

有興趣可以自己看一下。大意就是,MinGW會把MSYS program的參數(shù)自動轉(zhuǎn)換成Window programm,注意其中的一條:

x:/x     x;x;C:MinGWmsys1.0x

這條看上去有些可疑,因為我們也用了類似的寫法 :/mnt

解決錯誤

既然是git-bash嘗試補全造成的問題,那就想辦法不要補齊或者強制轉(zhuǎn)義。stackoverflow的高分解答表示,在path前加/可以實現(xiàn)跳過path的書寫轉(zhuǎn)義規(guī)定。那我們來試試看。
錯誤重現(xiàn)中的第二點,也是用/開始的,顯然不對。那我們在前面再加一個/

winpty docker run -itv //c/Users/cb/DockerPackages:/mnt/packages centos:7

問題解決。這個方案我個人感覺是最好的。

試試別的解決方案

綜合了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

由此看來,開頭是不是用/不是很重要。而""是必須的。暫時沒有找到可以使用~的方案,如果有,請留言告訴我。
其次,在windows下使用路徑,在寫:/的時候要非常慎重,這個會被補全或者轉(zhuǎn)義,務(wù)必在最前面加上/。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27624.html

相關(guān)文章

  • docker的世界

    摘要:反過來別的上的鏡像,也不能在樹莓派上運行。如果需要找樹莓派專用的鏡像,那就在上搜索或相關(guān)就能找到了。有一個叫的倉庫制作了非常多樹莓派專用,可以參考下。樹莓派安裝,最難的在于正確的選擇源和添加,才能找到版本適合的并下載。 最近學(xué)習(xí)Machine Learning發(fā)現(xiàn)好多人都用docker,之前一直聽說但是感覺和自己無關(guān)。但是現(xiàn)在發(fā)現(xiàn)原來docker是個這么方便的東西,可以跨平臺(不分什么...

    remcarpediem 評論0 收藏0
  • Docker volume 掛載文件件夾不存在

    摘要:文件掛載由于只會覆蓋單個文件而不會影響中同一文件夾下的其他文件,常常被用來掛載配置文件,以在運行時,動態(tài)的修改默認配置。 背景介紹 docker volume 可以使我們在啟動docker容器時,動態(tài)的掛載一些文件(如配置文件), 以覆蓋鏡像中原有的文件,但是,掛載一個主機上尚不存在的文件夾或者文件到容器中會怎樣呢?LZ在工作中就遇到了這樣的問題,故自己實踐了一下,記錄實驗結(jié)果如下: ...

    tuomao 評論0 收藏0
  • 后端的輪子(四)--- 容器

    摘要:先說結(jié)論,容器真的很好,很輕量級,功能又很重量級。是的版本完成以后,這個的文件系統(tǒng)就是一個標準的的文件系統(tǒng)了,里面的基本工具一應(yīng)俱全。 容器,目前最火的話題了,在后端的開發(fā)中,容器的運用也已經(jīng)是主流技術(shù)了,今天,我們就來說說容器技術(shù),之前我對這一塊的了解不是很多,但是最近有些特殊原因轉(zhuǎn)成運維工程師了,而公司的全線服務(wù)都是docker的,以一個開發(fā)人員的習(xí)慣,轉(zhuǎn)成運維以后,還是想對這種東...

    weizx 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<