前言
既然已經習慣使用 Hyper-V 建立虛擬機來開發了,那自然而然想要在虛擬機中來建立 docker 開發環境 (並沒有)
因此這一篇是簡單描述一下如何在 Hyper-V 的虛擬機中,啟用 docker-desktop
環境
- Host - Windows11 Pro 23H2
- Guest - Windows11 Home 24H2
windows 版本的 docker-desktop 在最一開始的時候,是在 Hyper-V 中,建立一個 linux 機器,並在其中安裝 docker,讓 Host 機器呼叫並執行
但現在的 windows 有 wsl(Windows Subsystem for Linux)
因此就不需要像之前在 windows 使用 Hyper-V 才能使用 docker,變成 Windows Pro 版本以上是個剛性需求
而是一般筆電買來就可以用了(通常比較便宜的是附 Home 版本 windows)
啟用巢狀虛擬化
雖然 Windows Home 沒有 Hyper-V 可以使用,但是還是需要開啟巢狀虛擬化,讓 docker-desktop 可以使用
在 Host 機器啟用指定虛擬機啟用功能
$VMName = "{虛擬機器名稱}"
Set-VMProcessor -VMName $VMName -ExposeVirtualizationExtensions $true
※ 需要有系統管理員權限,與虛擬機要在關機狀態
※ 如果沒有啟用的話,啟動 Docker-Desktop 時,就會發生錯誤
安裝 Docker-Desktop
基本上就是去到官網,然後選擇自己機器的平台,下載後點擊安裝就好
安裝完之後可以開啟命令提示字元,檢查一下版本,輸入docker -v
docker -v
嘗試執行一個容器(Container)
容器百百種,但這裡就拿範本的 image 吧
就不特別說要登入 docker hub 了
執行以下指令,來拉取 image、建立 container 並且執行起來
docker run -d -p 8088:80 --name welcome-to-docker docker/welcome-to-docker
執行完畢後,開啟瀏覽器前往網址 => http://localhost:8088
結語
本篇測試了在 Windows Home Edition 中也可以正常使用 docker,並且同時為了建立這個 Lab 環境,啟用了 Hyper-V 的巢狀虛擬化功能
實際上 Hyper-V 強大的 Enhanced session mode(加強的工作階段),在禁止啟用允許遠端的 Home 版 windows 中無法使用
所以平常也是直接裝 Pro 版本省事~XD
同時覺得大可以直接在本機上使用 docker-desktop 即可,不用這麼麻煩還套到虛擬機內
前一陣子剛好被派去外訓上了一點基本的 docker 使用教程
覺得有一句話其實說的蠻好的:「Docker 就是開發者的虛擬機」
實際體驗上,確實可以省去很多額外架設環境的麻煩
例如只是想要測試某個資料庫連線好不好連或者下的查詢語法能不能用之類的
image 拉一下,建立一個 container 就可以使用了
開發的時候,還是偶爾會覺得想專心在程式碼邏輯開發與美化
如何去管理容器或者容器之間如何溝通還是交給更專業的人士吧
前一陣子去上某一個講座,聽到有句話也不錯:「我是 YAML 工程師」
聽到就會心一笑~XD