1. 程式人生 > >Docker 和 vmware 共存工作

Docker 和 vmware 共存工作

原創源地址:https://lfire.github.io/2018/06/09/docker-work-with-vmware/

1 起因

在之前裝好系統環境後,想要在工作平臺上模擬伺服器的環境,來進行一下相關的實驗,因此,系統上裝好有 vmware 軟體,該軟體下的快照功能,讓我對於相關的實驗環境有一個很好的備份操作,很是 nice。
而另一個方面,當前 docker 的活躍程度,也讓我這個技術屌絲,內心有點點萌動,想了解一下,如果可以玩出點花樣,那也是極好的。
但是,當我嘗試了在 windows 環境下,安裝好了 docker 後,提示要開啟 Hyper-V ,開啟後,正常啟動 docker 服務。(控制面板->程式->程式和功能->啟用或關閉 Windows 功能


cannot start docker

某天的某天,再次撿起 vmware 時,確報出了錯誤。
vmware 報錯
後面查閱了相關資料,原來,Hyper-V 與 vmware 有衝突,只能二選一。

2 解決方案

當需要使用 vmware 時,我們按開啟的方式,再次關閉 Hyper-V ,這樣,軟體就能正常的打開了。
但這樣操作,有一個不好的地方,每開啟或關閉一次,系統都必需要重啟一次,這導致每次系統都進行了一次程式的安裝和解除安裝,費時不高效。

3 更好的辦法

建立兩個啟動項,一個開啟了 Hyper-V,而另一個則關閉,這樣,我們可以在需要該功能時,在系統啟動介面自由的選擇相應的啟動項,而不用頻繁的安裝和解除安裝 Hyper-V。
建立新的啟動項,並將 Hyper-V 功能關閉,命令如下:

# win + X 開啟命令列,注意:必須以管理員身份執行
bcdedit /copy {default} /d "Windows 10 Without Hyper-V"
# 以上命令得到輸出 {xxxxxxxxxxxxxxxxxxx}
bcdedit /set {xxxxxxxxxxxxxxxxxxx} hypervisorlaunchtype off

如圖:
bcdedit

我們可以通過命令:bcdedit /enum,檢視啟動項列表。
get bcdedit list

4 bcdedit 簡單用法

以上的操作中,用到了一個很重要的命令:bcdedit,其主要功能是建立和重新配置 bootloader。(Boot Configuration Data Edit)
有一些常用的用法:

# 檢視幫助
bcdedit /?
# 檢視啟動項列表
bcdedit /enum
# or 檢視所有
bcdedit /enum all
# 設定某個啟動項配置值
bcdedit /set {xxxx} description "Windows 10 With Hyper-V"
# or
bcdedit /set {xxxx} hypervisorlaunchtype on
# 設定啟動項顯示排列順序
bcdedit /displayorder {current} {xxxxx} {xxxxxx}
# 建立新的啟動項
bcdedit /create /d "A New One"
# 複製啟動項
bcdedit /copy {xxxx} /d "A Copy One"
# 刪除啟動項
bcdedit /delete {xxxx}
# or 徹底刪除
bcdedit /delete /cleanup {xxxx}
# 設定預設啟動項
bcdedit /default {xxxxx}
# 設定預設的啟動選單顯示時間,單位秒
bcdedit /timeout 10