Linux Container 與 Windows Container 的差異

在 Windows 執行 docker container,主要有兩種方法:

windows Container

只有在 windows 2016 server core 才提供,利用內建的 dockerd 可以直接運行 container,不需要額外的 VM。架構如下:

Linux Container

windows 2016 Server & windows 10 Pro 以上版本都有提供,必須要透過 Hyper-V (參閱安裝 docker for windows) ,主要透過 docker proxy 執行 VM 裡面的 container:

Windows container 最大的優勢是可以在 host machine 上,直接看到 container 的執行序、新增的硬碟空間等,因為他們的底層 Kernel 是一樣的;

相反的 Linux container 的執行序無法被 host 得知,並且也無法直接存取 container 的目錄,因為底層 Kernel 不一樣。

安裝 Docker for Windows

  • 安裝 hyper-v

首先要確定 virtualization 是否啟用:『模擬』要設定為啟用:

        

上圖代表已被停用,因此需要在硬體的 bios 上啟用虛擬化:

  • 啟動 hyper-Vdocker for Windows 使用 hyper-V,如果我們不設定啟用,docker 也會自動協助設定
  • 安裝 Install Docker for Windows

必須要是 windows 10 pro 64 bits,目前主要還是要選擇 edge channel,因為 stable channel 目前不支援 windows container。如果要安裝穩定版本,可以在 Docker 官網下載

  • 安裝完畢後,要等待 docker initialization

完畢後,就會出現 docker Welcome 畫面,代表 Docker 已經啟動成功:

       

我們可以檢查 hyper-v,會出現 linux VM,這是 Docker host 主要的 VM

透過 docker cli 可以查詢 docker info,在此可以看到執行的環境是 linux: