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