2022年1月9日 星期日

新手學Docker 基本概念

有裝的vm的人都知道,當一台機器需要有兩個作業系統時,windows + Linux 怎麼辦? 最快的方法就是虛擬環境 VM,但需要切割一小塊的記憶體和空間,而且還需要安裝整個作業系統耶~ 於是有人提出了好方法 ,只要需要一小塊的空間 (Container) 容器,裝戴著部份核心的作業系統(比vm 更加的輕量化,就可以執行不同作業系統的功能,另外docker 不是用取代VM的,如果僅需要某些作業系統的核心或函式庫等就很適合Docker用法。

但是想瞭解docker ,網路上有太多的名詞【映像檔Image】、【容器Container】、【倉庫Responsiory】越聽越胡塗,簡單的說如比你有一個windows作業系統的碟片這我們稱之為image,你將光碟片的東西安裝起來後執行的作業系統稱為container,我的解讀是這個意思,但專業術語還是看以下的說明吧

原作者: https://cwhu.medium.com/docker-tutorial-101-c3808b899ac6

l  映像檔 Image

Docker 映像檔是一個模板,用來重複產生容器實體。例如:一個映像檔裡可以包含一個完整的 MySQL 服務、一個 Golang 的編譯環境、或是一個 Ubuntu 作業系統。

透過 Docker 映像檔,我們可以快速的產生可以執行應用程式的容器。而 Docker 映像檔可以透過撰寫由命令行構成的 Dockerfile 輕鬆建立,或甚至可以從公開的地方下載已經做好的映像檔來使用。

l  容器 Container

就像是用蛋糕模具烤出來的蛋糕本體,容器是用映像檔建立出來的執行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離、保證安全的平台。,Docker 映像檔是唯讀(read-only)的,而容器在啟動的時候會建立一層可以被修改的可寫層作為最上層,讓容器的功能可以再擴充。這點在下面的實例會有更多補充。

l  倉庫 Repository

倉庫(Repository)是集中存放映像檔的場所,也可以想像成存放蛋糕模具的大本營。倉庫註冊伺服器(Registry)上則存放著多個倉庫,你可以任易的取用使用透過docker 的指令,你可以在上面建立多個倉庫,然後透過 pushpull 的方式上傳、存取。

 l  啟用hyper-v

筆者用自身的經驗告訴大家如何安裝吧

如果你是 Windows 的專業版,就可以順利的點選以下的Hyper-Vtool

因為我的作業系統是window 10 家用版想啟用Hyper-V 的管理工具,沒有發現相關的選項~ 後續查相關文件發現是Windows home 不支援… WSDL, 我只能先用powershell 指令執行wsdl2

相關文件 : https://docs.microsoft.com/zh-tw/windows/wsl/install-manual

步驟一: 啟用windows 子系統linux

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

步驟二: 啟用VM

dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart

步驟三: 下戴Linux 核心更新套件

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

步驟四: wsl2 設為預設版本

wsl --set-default-version 2

以上做完後~ 恭喜你完成第一步了…  

l  安裝docker

相關文件: https://docs.docker.com/desktop/windows/install/

下戴點

https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe

 如果各位順利安裝完畢先恭喜各位完成docker安裝囉