起因
在執(zhí)行docker腳本的時(shí)候,出現(xiàn)不能創(chuàng)建容器的錯(cuò)誤。
如下所示:
Cannot create container for service xxx: b'Drive has not been shared'
上了Stack Overflow,查看解決方法是通過(guò)Setting->Shared Drives,接著勾選自己想要用于docker掛載鏡像的磁盤(pán)地址。
但是,無(wú)論你怎么勾選,Rest credentials,Apply,甚至Reset,出廠化都無(wú)濟(jì)于事。每一次輸入用戶(hù)密碼后,docker 都自動(dòng)把我的選項(xiàng)刷沒(méi)了。
此時(shí)你需要分析一下有幾種原因:
1、是不是本地安全策略中本地策略->安全選項(xiàng)->網(wǎng)絡(luò)訪問(wèn):本地賬戶(hù)的共享與安全模型,中安全設(shè)置沒(méi)有放開(kāi)權(quán)限,這里需要選擇經(jīng)典模式。
2、是不是防火墻的問(wèn)題,445端口沒(méi)有被用于映射
3、會(huì)不會(huì)是Hyper-V被禁用了
這邊主要是第一種情況導(dǎo)致的drive has not been shared,設(shè)置好之后,Setting->Shared Drives->想要掛載的盤(pán),reset,運(yùn)行完事。
補(bǔ)充:win10 docker 使用run -v 時(shí),虛擬機(jī)無(wú)法顯示宿主機(jī)掛載的目錄
這幾天在學(xué)習(xí)docker,今天博主遇到的問(wèn)題是這樣的:
docker run --name centos7 -it -v D:\docker-data\exchange\:/mnt centos:7
使用如上方法啟動(dòng)一個(gè)容器,在虛擬機(jī)的/mnt目錄下怎么也無(wú)法加載D:\docker-data\exchange\下面的文件。但是啟動(dòng)容器的時(shí)候正常啟動(dòng),沒(méi)有報(bào)任何錯(cuò)誤,折騰了好一陣。但是昨天我用這個(gè)方法是能正常掛載,能正常讀取到宿主機(jī)的文件的。
后來(lái)才發(fā)現(xiàn),是自己昨天最后改了自己電腦的密碼,要重新驗(yàn)證才可以正常讀取。(不知道是不是docker的一個(gè)坑,明明之前驗(yàn)證過(guò)的密碼已經(jīng)變動(dòng)了,執(zhí)行上面的命令也不要求重新認(rèn)證,也不報(bào)錯(cuò),坑)
使用如下方法先清除驗(yàn)證,打開(kāi)docker的settings窗口,在如下頁(yè)面點(diǎn)擊reset credentials,再勾選上要掛載的目錄所在磁盤(pán),重新輸入密碼(這里不知道為何非要密碼,我的電腦一直都不設(shè)置密碼,為了用docker特設(shè)置了一個(gè))
然后就可以成功掛載目錄到虛擬機(jī)了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。