2016-12-06 103 views
9

在Windows Server 2016上運行Linux Docker容器的方式是什麼?使用Windows的Docker很容易在Windows 10中完成。是否只有安裝Docker Toolbox並忽略內置容器功能的唯一方法?Windows Server 2016上的Linux Docker容器

+0

您是否設法解決此問題? –

回答

4

不幸的是,現在無法輕鬆安裝「Docker for Windows」工具。這個安裝程序提供了一個名爲MobyLinux的瘦虛擬機,它允許在Windows Server 2016上運行Linux容器。您可以在Docker論壇上找到hacky install attempt(我沒有嘗試過)。

作爲參考,有一個good discussion關於「Docker for Windows」幕後發生的事情。

+0

現在可能,雖然不是簡單的安裝。請參閱以下[答案](http://stackoverflow.com/a/42978854/444244)。 – Boggin

+1

@Boggin這是我在回答中提到的「hacky安裝嘗試」。 –

5

可以在W2016上使用Linux容器。這有點哈克,但。用戶「Algore」描述了它here,但我已經將它複製到此答案中,當然。

  • 下載 「泊塢的Windows」:https://docs.docker.com/docker-for-windows/

  • 在Windows 10安裝臨 「泊塢的Windows」。

  • 複製C:\Program Files\Docker從Windows 10機器到C:\Program Files在您的服務器2016年框。

  • 在W2016箱運行install-windowsfeature hyper-v,containers

  • 複製這些註冊表項到一個文件,並將其導入您的服務器2016箱(REG進口):

--- START ---
Windows註冊表編輯器5.00版

[HKEY_LOCAL_MACHINE \ SOFTWARE \泊塢公司]

[HKEY_LOCAL_MACHINE \ SOFTWARE \泊塢公司\泊塢]

[HKEY_LOCAL_MACHINE \ SOFTWARE \泊塢公司\泊塢\ 1.0]
「APPPATH」= 「\」 C:\ Program Files文件\泊塢\泊塢\泊塢爲的Windows.exe \ 「」
「BinPath」= 「\」 C:\ Program Files文件\泊塢窗\泊塢窗\資源\ BIN \ 「」

[HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\應用程序\ DockerService ]
「EventMessageFile」= hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\ 00, 73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\ 4E,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b, \ 00,36,00,34,00,5c,00,76,00,34,00,2e,00,30,00,2e,00,33,00,30,00,33,00,31, 00,\ 39,00,5c,00,45,00,76,00,65,00,6e,00,74,00,4c,00,6f,00,67,00,4d,00,65, 00,73,\ 00,73,00,61,00,67,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,00,00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ com.docker。服務] 「Type」= dword:00000010 「Start」= dword:00000002 「ErrorControl」= dword:00000000 「ImagePath」= hex(2):22,00,43,00,3a,00,5c, 00,50,00,72,00,6f,00,67,00,72,00,61,00,\ 6d,00,20,00,46,00,69,00,6c,00,65, 00,73,00,5c,00,44,00,6f,00,63,00,6b,00,65,\ 00,72,00,5c,00,44,00,6f,00,63, 00,6b,00,65,00,72,00,5c,00,63,00,6f,00,6d,00,\ 2e,00,64,00,6f,00,63,00,6b, 00,65,00,72,00,2e,00,73,00,65,00,72,00,76,00,69,\ 00,63,00,65,00,22,00,00, 00
「DisplayName」=「Docker for Windows Service」
「ObjectName」=「LocalSystem」
「Description」=「運行Docker for Windows後端服務」
--- END ---

如果您希望docker for windows.exe自動啓動,您可以向currentversion \ run或計劃作業添加一個條目。

  • 重新啓動計算機並運行PowerShell腳本C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create

一下這個PS1文件和通知,您可以設置各種選項。請參考以下網站:

https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/

  • 確保泊塢窗服務com.docker.servicestart-service com.docker.service)正在運行啓動C:\Program Files\Docker\Docker for Windows.exe

之前,如果在服務器核心和唐運行沒有托盤圖標,點擊「更改隱私設置」,當它開始進入設置(或修改程序數據中的json)後出現通知時

如果您在嘗試和重新構建時遇到問題,請查看C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1文件以查找要刪除設置的位置,如C:\programdata。我會建議不要運行該腳本,因爲它會刪除所有與Docker相關的東西。只需使用它的部分。

+1

我遵循了這些步驟,並且能夠運行docker for windows,但由於某些原因bin路徑未被拾取,我無法在cmd中運行「docker」或「docker-compose」。除非我明確導航到文件夾,否則不會識別這些命令。有任何想法嗎? – chvndb

+1

CLI工具是單獨安裝的。 Docker Engine [發佈](https://github.com/docker/docker/releases)和Docker Compose [發佈](https://github.com/docker/compose/releases)在GitHub上提供。 – Boggin

+1

你是什麼意思,單獨安裝?在C:\ Program Files \ Docker \ Docker \ resources \ bin \下,CLI工具就是Docker for Windons安裝的一部分。最後,我只是將bin文件夾添加到我的$ PATH環境變量中。現在工作正常。 – chvndb

4

this從斯特凡舍雷爾有可能服務器2016年的說明上運行Linux容器:

Hyper-V中

創建一個Linux泊塢窗機如果您想嘗試多架構,您還可以使用Docker-machine 來創建在Hyper-V中運行的Linux Docker引擎。我準備了一個 腳本,它將設置所有事情,因爲有一些已知問題。

C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1 

這PowerShell腳本創建一個泊塢窗機和更新泊塢窗 引擎爲最新以便在Windows泊塢客戶端能夠 與Linux泊塢引擎通信。

使用Linux泊塢窗機

打開PowerShell的終端作爲管理員,並與

docker-machine env --shell powershell | iex 

選擇了Linux 泊塢窗機現在用

docker run -it busybox uname -a 
相關問題