Windows Sandbox沙箱是一個不錯的功能,除了可以在裡面進行一些測試或是不想留在Host的一些記錄之外,有時候更是拿來當作簡易陽春型的VM虛擬機器來使用。(可以參考之前的這篇文章,裡面有簡單的介紹並說明如何在Windows 10 家用Home版安裝Sandbox功能)
Windows
【2021鐵人賽】建立自管的Azure DevOps Agent(Windows Container agent)
這篇延續前一篇在Windows VM中安裝Azure DevOps Agent的內容,講解了如何讓Agent在Windows Container中執行,從基底映像檔的差異到挑選適合的映像檔在Dockerfile中使用,也示範如何將Host中Docker提供給Container使用。
Windows Server安裝Docker與Container功能
Windows Server要安裝Docker很簡單,只需要透過具有Administrator權限的PowerShell執行三行指令就可以完成安裝Docker的動作,分別是安裝Provider、安裝Docker、重新開機。
Windows Container中修改json檔案設定值的方法
通常使用到Docker技術執行Container容器都是使用Linux環境,但是Windows環境也可以使用Container,有的時候因為一些考量會需要製作兩套不同環境(Windows & Linux)的Docker Image,所以前面一篇文章提到了如何在Linux Container中修改json檔案設定值的方法,這一篇則是來說明如何在Windows Container中做到一樣的事情。
不同的地方在於,Linux環境中透過額外安裝jq套件來達成修改json檔案的作法,在Windows環境下我們則是使用PowerShell來達成這樣的事情,所以不需要額外安裝任何套件(PowerShell應該都有內建在Windows環境中)。
同一台電腦可執行Windows與Linux Container?在WSL2安裝原生Docker環境
如果想要在同一台電腦中既可以執行Windows Container,又可以執行Linux Container,以便測試程式在不同環境之下執行的結果或是設定值的差異,該如何達到這樣的需求呢?
答案就是:利用Windows中的Linux子系統(Windows Subsystem for Linux, WSL)。
透過WSL安裝Linux子系統之後,可以在Linux子系統中安裝原生的Docker執行環境,在Windows環境中則是安裝Docker Desktop並且切換到使用Windows Container,這樣一來就可以在Windows環境執行Windows Container,Linux子系統中執行Linux Container了。
註:WSL是Windows 10的功能,版本又分為Version 1(WSL)與Version 2(WSL2),WSL2只能在Windows 10 2004版(組建19041以上)執行。(參考官方wsl文件說明)
在開始之前,先輸入wsl -l -v
查看一下系統內安裝的Linux子系統是執行在哪一個版本(1或2)。
在Linux子系統中要執行原生的Docker,只能在Version 2的版本(WSL2)。
Windows 10 Home版本安裝Windows Sandbox沙箱功能
跟上一篇「Windows 10 Home家用版安裝Hyper-V與Docker」類似,Windows 10 Home的版本也沒有Windows Sandbox沙箱功能,這個Windows Sandbox沙箱功能是基於Hyper-V功能的Container,不過卻不會有體積龐大或是資源浪費的問題。
根據微軟的文件說明,Windows Sandbox沙箱功能在未安裝之前是一個大小約為30MB的壓縮封裝,即使安裝之後解壓縮大小也只會佔據大約500MB左右的磁碟空間。(當然你在沙箱裡面下載大檔案或是其它操作所產生的檔案是另外一回事)
Windows 10 Home家用版安裝Hyper-V與Docker
公司一開始配的電腦是Acer的套裝電腦,裡面搭配的是Windows 10 Home版,作為一個開發者,Home版本的功能實在是不太符合需求,因為預設應該是沒有Hyper-V功能,如果要安裝Docker的話,也只能安裝Client工具…
不太想要動到OS重灌這一招,想到之前似乎有試過(看到)在Windows 10 Home版安裝Hyper-V與WSL,不過因為很久沒有寫部落格記錄,有些問題解決之後就沒有記錄,所以趁著這次解決這個問題並且將部落格從幾次亂搞之後最近放到Google Cloud Run上面執行,一併將這些操作記錄下來。