Windows Server 2016上的Linux Docker容器

Windows Server 2016上的Linux Docker容器,docker,windows-server-2016,Docker,Windows Server 2016,在Windows Server 2016上运行Linux docker容器的方法是什么?有了Docker for Windows,在Windows 10中操作起来很容易。是安装Docker Toolbox并同时忽略内置容器功能的唯一方法吗?不幸的是,目前无法轻松安装“Docker for Windows”工具。此安装程序提供了一个名为MobyLinux的瘦VM,它允许在Windows Server 2016上运行Linux容器。你可以在Docker论坛上找到一个(我没有尝试过的) 有一个关于“D

在Windows Server 2016上运行Linux docker容器的方法是什么?有了Docker for Windows,在Windows 10中操作起来很容易。是安装Docker Toolbox并同时忽略内置容器功能的唯一方法吗?

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


有一个关于“Docker For Windows”幕后活动的参考资料

可以在W2016上使用Linux容器。不过有点黑。用户“”对其进行了描述,但我已将其复制到这个答案中

  • 下载“Docker for Windows”:

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

  • 将Windows 10计算机上的
    C:\Program Files\Docker
    复制到服务器上的
    C:\Program Files

  • 在W2016框上运行
    安装windowsfeature hyper-v,容器

  • 将这些注册表项复制到文件中,并将其导入到您的服务器2016框(reg导入):

---开始---
Windows注册表编辑器5.00版

[HKEY\U LOCAL\U MACHINE\SOFTWARE\Docker Inc.]

[HKEY\U LOCAL\U MACHINE\SOFTWARE\Docker Inc.\Docker]

[HKEY\U LOCAL\U 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\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\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,00,00

[HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\com.docker.service] “类型”=dword:00000010 “开始”=dword:00000002 “错误控制”=dword:00000000 “图像路径”=十六进制(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,00
“DisplayName”=“Windows服务的Docker”
“ObjectName”=“LocalSystem”
“Description”=“为Windows后端服务运行Docker”
---完--

如果希望docker for windows.exe自动启动,可以向currentversion\run或计划作业添加条目

  • 重新启动计算机并运行PowerShell脚本
    C:\Program Files\Docker\Docker\Resources\MobyLinux虚拟机.ps1-Create
查看这个ps1文件,注意您可以设置各种选项。请浏览以下网站:


  • 启动
    C:\Program Files\docker\docker for Windows.exe
如果您在服务器核心上运行,并且没有托盘图标,则在开始进入设置(或在programdata中修改json)后出现通知时,单击“更改隐私设置”

如果您在尝试操作和重建时遇到问题,请查看
C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1
文件中删除设置的位置,如
C:\programdata
。我建议不要运行脚本,因为它会删除所有与docker相关的内容。只需使用其中的一部分。

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

在Hyper-V中创建Linux Docker计算机 如果你想尝试多架构,你也可以使用docker机器 要创建在Hyper-V中运行的Linux Docker引擎,我准备了一个 脚本,将设置所有内容,因为存在一些已知问题

C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
此PowerShell脚本创建Docker计算机并更新Docker 引擎设置为最新版本,以便Windows Docker客户端能够 与Linux Docker引擎通信

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

docker-machine env --shell powershell | iex
现在使用运行您的第一个busybox容器

docker run -it busybox uname -a

只需在Windows Server 2016上下载并安装Docker即可

如果您使用Hyper-V将Windows Server 2016作为虚拟机运行,请确保检查此MS文档

以下在Windows Server 2016 build 14393.693(2017年1月)上运行的版本,无需任何破解方法

它可以在较高/较低版本上运行,但我尝试在最近更新的Windows Server 2016上进行复制,但失败得惊人!感觉这个洞必须修补

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

链接:

包含所有版本的页面:

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

对于气隙系统,它也可以脱机运行

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

安装后,您将收到一条消息,说明windows某某已被弃用。单击“确定”。在此处输入图像描述 注销并重新登录

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

我已经通过运行几个Linux容器对此进行了测试,效果很好。如果我错过了什么,做沙尔