Windows Server 2016上的Linux Docker容器

时间:2016-12-06 12:57:34

标签: docker windows-server-2016

在Windows Server 2016上运行Linux docker容器的方法是什么?使用Docker for Windows,在Windows 10中很容易。安装Docker Toolbox并忽略内置容器功能的唯一方法是什么?

5 个答案:

答案 0 :(得分:7)

可以在W2016上使用Linux容器。虽然有点hacky。用户“Algore”将其描述为here,但我当然已将其复制到此答案中。

  • 下载“Docker for Windows”:https://docs.docker.com/docker-for-windows/

  • 在Windows 10 Pro上安装“Docker for Windows”。

  • 将{10}从Windows 10计算机复制到Server 2016上的const userPromises = persons.map(user => { return new Promise((resolve, reject) => { person.save((error, result) => { if (error) { reject(error) } resolve(result); }) }) }); Promise.all(userPromises).then((results) => { //yay! //results = [first, second, etc...] }, (error) => { //nay! })

  • 在W2016框中运行C:\Program Files\Docker

  • 将这些注册表项复制到文件中并将其导入Server 2016框(reg import):

--- --- START
Windows注册表编辑器版本5.00

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc。]

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc. \ Docker]

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc. \ Docker \ 1.0]
“AppPath”=“\”C:\ Program Files \ Docker \ Docker \ Docker for Windows.exe \“”
“BinPath”=“\”C:\ Program Files \ Docker \ Docker \ resources \ bin \“”

[HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\事件日志\应用程序\ DockerService]
“EventMessageFile”=十六进制(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 \服务\ com.docker.service] “类型”= DWORD:00000010 “开始”= DWORD:00000002 “ErrorControl”= DWORD:00000000 “的ImagePath”=十六进制(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”=“Windows服务的Docker”
“对象名” =“本地系统”
“Description”=“运行Docker for Windows后端服务”
---结束---

如果您希望dock.exe for windows.exe自动启动,您可以为currentversion \ run或预定作业添加条目。

  • 重新启动计算机并运行PowerShell脚本C:\Program Files

查看此ps1文件,注意您可以设置各种选项。请参考以下网站:

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

  • 确保停靠服务install-windowsfeature hyper-v,containersC:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create)正在运行,然后才开始com.docker.service

如果您在服务器核心上运行且没有托盘图标,请在开始进行设置后通知出现时单击“更改隐私设置”(或修改程序数据中的json)

如果您在尝试和重建时遇到问题,请查看start-service com.docker.service文件,了解要删除C:\Program Files\Docker\Docker for Windows.exe等设置的位置。我建议不要运行脚本,因为它删除了所有与docker相关的东西。只需使用它。

答案 1 :(得分:5)

根据Stefan Scherer的this,可以在Server 2016上运行Linux容器。说明如下:

  

在Hyper-V中创建Linux Docker机器

     

如果您想尝试多种架构,还可以使用docker-machine   创建在Hyper-V中运行的Linux Docker Engine。我准备好了   脚本将设置所有内容,因为存在一些已知问题。

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

此PowerShell脚本创建Docker计算机并更新Docker   引擎到最新,以便Windows Docker客户端能够   与Linux Docker Engine进行通信。

     

使用Linux Docker计算机

     

以管理员身份打开PowerShell终端并选择Linux   Docker机器

docker-machine env --shell powershell | iex
     

现在使用

运行第一个busybox容器
docker run -it busybox uname -a

答案 2 :(得分:4)

不幸的是,现在无法轻松安装“Docker for Windows”工具。此安装程序提供了一个名为MobyLinux的瘦VM,它允许在Windows Server 2016上运行Linux容器。您可以在Docker论坛上找到hacky install attempt(我没有尝试过)。

作为参考,有一个good discussion关于“Docker for Windows”幕后发生的事情。

答案 3 :(得分:1)

只需在Windows Server 2016上下载并安装Docker https://www.docker.com/docker-windows
如果使用Hyper-V将Windows Server 2016作为VM运行,请务必检查此MS doc https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

答案 4 :(得分:0)

以下内容适用于 Windows Server 2016 内部版本 14393.693(2017 年 1 月),没有破解方法。

它可能适用于更高/更低的版本,但我尝试在最近更新的 Windows Server 2016 版本上进行复制,但它失败了!感觉这个坑要补了!

下载 Docker 社区版 2.0.0.3 2019-02-15

链接:https://download.docker.com/win/stable/31259/Docker%20for%20Windows%20Installer.exe

包含所有版本的页面:https://docs.docker.com/docker-for-windows/release-notes/

只需将文件下载/复制到 Windows Server 2016 机器并运行即可。

它还可以为气隙系统离线运行。

在安装过程中取消选中“使用 Windows 容器”。默认情况下未选中。

安装后您会收到一条消息,说 Windows 某某已被弃用。单击确定。在此处输入图片说明 enter image description here 退出并重新登录。

如果您尚未安装 Hyper-V,它会提示您自动安装。允许它,让它完成并重新启动。你现在可以走了。如果无法切换到 Linux,您可能需要重新启动。

我已经通过运行多个 Linux 容器对此进行了测试,它运行良好。如果我遗漏了什么,请为了他人的利益而分享。缺点是您无法更新到更高版本的 Docker。