在 Windows Server 2016 上使用 Linux Container

想必大家對於 Windows 10 透過簡易的 GUI 就可達到快速切換 Windows container 與 Linux container 的功能非常有印象(詳細內容可以參考 Windows 10 如何啟用 docker 功能),原本在 Windows Server 2016 上並沒有提供這樣的工具,這幾天經同事指點:新版的 Docker for Windows 已經支援 Windows Server 2016 可以快速轉換 Windows container 與 Linux container

在同事的催促下,就來紀錄一下該如何安裝與使用吧

安裝 Docker for Windows

  1. 下載 Docker for Windows

    1download

    下載位置:Docker for Windows Installer.exe

  2. 安裝 Docker for Windows

    2install1

    3install2

    4installed

安裝 Hyper-V

Windows 環境並不支援 Linux 相關 api,為了讓 Windwos Server 2016 可以直接使用 Linux container 需要透過 Hyper-V 建立 Linux 環境來 host Linux container

  • 方法 一:透過 Docker for Windows 啟動

    安裝完成 Docker for Windows 後會直接啟動,預設使用 Linux container 就會直接提示安裝,按下 OK 就會安裝 Hyper-V 並重啟

    5requirehyperv

  • 方法 二:自行安裝

    詳細安裝方式請參考 如何在 Windows Server 2016 上安裝 Hyper-V

安裝完成

  1. 具備在 Windows Container 與 Linux Container 間快速切換的功能

    6linux

    7windows

  2. 使用 Linux Container 時會透過 Hyper-V 自動載入 MobyLinuxVM 的 Linux 環境供 Linux container 執行

    8moby

心得

透過 docker for windows 可以讓 Windows Server 2016 也能擁有像是 Windows 10 一樣橫跨 Windows container 與 Linux container 的優點,快速切換的功能讓使用不同 OS container 時更加節省時間及有效率,非常感謝同事指教

另外補充一點:Windows Server 2016 所使用的 windows container 是專為 windows 設計的架構,os 層 api 都是全新設計,而 Windosw 10 上的 windows container 則是透過 Hyper-V 模擬出來的,效能上不如 Windows Server 2016 上原生的 windows container 好。

以下提供簡易辨別 docker 是否運行於 Hyper-V 的方式:

使用 docker info 語法檢視 windows conatiner 的 isolation 類型

  1. process - 直接使用 windows container

    9process

  2. hyperv - 使用 Hyper-V container

    這邊要注意,Hyper-V container 也可能出現在 Windows Server 2016 上,目的是達成更安全的隔離效果

    10hyperv

參考資訊

  1. Install Docker for Windows
  2. Windows 10 如何啟用 docker 功能
  3. 如何在 Windows Server 2016 上安裝 Hyper-V