﻿# 如何在 Windows 10 同時安裝與執行 Windows 與 Linux 容器 (Docker)

自從將我的 Windows 10 升級到周年更新後，發現有好多好玩的功能可以用，前陣子在玩 WSL (Windows Subsystem for Linux) ( Bash on Windows )，而最近則是把玩 Windows Containers 容器技術。今天這篇文章，主要想分享如何讓大家在自己的 Windows 10 電腦中同時安裝 Windows Containers 與 Linux Containers 環境，讓你在同一台開發主機上可以同時享受真正跨平台的容器支援。

先給各位看看我已經安裝好的環境，在安裝好 Docker for Windows 之後，螢幕右下角會出現一個 Docker 圖示的系統匣 (System Tray)，並顯示著 **Docker is running**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d9884c45df927de8f1a5-image_2990.png)

只要你安裝的是 [Docker for Windows](https://docs.docker.com/docker-for-windows/) **Beta channel** 版本，你就會在 Docker 右鍵選單中發現一個之前沒看過的小功能，可以幫你在 Linux containers 與 Windows containers 之間快速切換：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3c295d17f80103952f47-image_2991.png)![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6bc58c8269a16ad11605-image_2992.png)

如果你開啟命令提示字元視窗，你輸入 **docker version** 命令執行，即可得知目前透過 Docker CLI 連接的 Docker Server 的架構為何。

以下圖為例，你會看到 OS/Arch 顯示 linux/amd64 就代表你正在執行 Linux Containers，也就是 Docker for Windows 內建的那套。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/67d57821b8e9147e4b72-image_2993.png)

如果你切換到 Windows containers 的話，輸入 **docker version** 命令執行就會看到 Docker CLI 連接的 Docker Server 的架構變成 windows/amd64，這也就是 Windows 10 周年更新內建的 Windows Containers 服務。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/532f2e24fa20ecb16ee1-image_2994.png)

如果要透過命令列工具進行切換，也可以輸入以下指令：

Command Prompt

> **"C:\\Program Files\\Docker\\Docker\\DockerCli.exe" -SwitchDaemon**

PowerShell

> **& 'C:\\Program Files\\Docker\\Docker\\DockerCli.exe' -SwitchDaemon**

至於 Windows Containers 與 Linux Containers 到底有多大差異呢？其實幾乎 99% 都是相同的，從命令列使用方式到 Docker API 都相容，管理工具也可以共用，比較大的差別就在於他們的作業系統核心不同，Linux Containers 只能跑 Linux 環境下的應用程式，而 Windows Containers 只能執行 Windows 環境下的應用程式，如此而已。

### 同時安裝兩種不同平台的容器服務

如果要安裝 Docker for Windows ( Linux Containers )，你可以參考 [Get started with Docker for Windows - Docker](https://docs.docker.com/docker-for-windows/) 這份文件。

如果要安裝 Windows Containers，你可以參考 [Windows 10 上的 Windows 容器](https://msdn.microsoft.com/zh-tw/virtualization/windowscontainers/quick_start/quick_start_windows_10) 這份文件。

不過，真的要安裝到順暢，我這邊有個建議的安裝步驟：

1.  準備 Windows 10 專業版或企業版 (64-bits) 的作業系統，並更新到周年更新版本。

-   **啟用 Hyper-V 服務**

3.  安裝 [Docker for Windows](https://docs.docker.com/docker-for-windows/)，而且一定要安裝 **Beta channel** 的版本喔！ (重要)

-   安裝過程非常順利，一直下一步就可以自動裝好了。

5.  切換至 Windows containers (如下圖示)，過程中會自動幫你裝好必要的 Windows 10 容器服務。  
    [![image](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0f8e62cfeafe6f80be21-image_thumb_222.png "image")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/7131703b214df2c16e83-image_2995.png)
6.  重開機
7.  從 [Windows 10 上的 Windows 容器](https://msdn.microsoft.com/zh-tw/virtualization/windowscontainers/quick_start/quick_start_windows_10) 這份文件的第 3 步【**3.安裝基礎容器映像**】開始設定即可。

**相關連結**

-   [Windows 容器快速入門](https://msdn.microsoft.com/zh-tw/virtualization/windowscontainers/quick_start/quick_start)
-   [Windows 10 上的 Windows 容器](https://msdn.microsoft.com/zh-tw/virtualization/windowscontainers/quick_start/quick_start_windows_10)
-   [Build And Run Your First Docker Windows Server Container](https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/)
-   [Run Linux and Windows Containers on Windows 10](https://stefanscherer.github.io/run-linux-and-windows-containers-on-windows-10/)
-   Build your first container using Docker on Hyper‑V ( 非常棒的線上虛擬實驗室 )
-   [Docker For Windows Beta -- Docker Saigon](http://docker-saigon.github.io/post/Docker-Beta/)
